wikioi1430素数判定
来源:互联网 发布:测试淘宝标题 编辑:程序博客网 时间:2024/06/05 07:15
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等。算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。这个定理的重要一点是,将1排斥在素数集合以外。如果1被认为是素数,那么这些严格的阐述就不得不加上一些限制条件。
概念
只有1和它本身两个约数的自然数,叫质数(Prime Number)。(如:由2÷1=2,2÷2=1,可知2的约数只有1和它本身2这两个约数,所以2就是质数。与之相对立的是合数:“除了1和它本身两个约数外,还有其它约数的数,叫合数。”如:4÷1=4,4÷2=2,4÷4=1,很显然,4的约数除了1和它本身4这两个约数以外,还有约数2,所以4是合数。)
100以内的质数有2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,在100内共有25个质数。
注:(1)1既不是质数也不是合数。因为它的约数有且只有1这一个约数。
(2)2和3是所有素数中唯一两个连着的数 .
第一行输入一个正整数n,n<=30000
如果该数是质数,则输出\t
否则输出\n
输入样例1
13
输入样例2
8
样例输出1
\t
样例输出2
\n
c或c++的初学者注意,"\"的意思
素数的判定方法:它如果存在因数,那么一定可以写成乘积的形式。比如M = 1 * M。如果它存在两个因数,乘积等于M,这两个因数一定一个小于根号M,一个大于根号M,因为一定存在两个相等的数乘积等于它(当然可能不是整数),这两个数就是根号M,因为M = 根号M * 根号M。如果两个数都在根号M以下,乘起来小于M,如果两个数都在根号M以上,乘起来一定大于M,所以两个数分布于根号M两边,那么我们只要找到其中一半有没有这样一个整数就可以了。如果有,自然对应的另一半也有一个和它对应的数,使它们的乘积为M。
综上,对于试除遍历求法,只需遍历到根号M即可。
#include <stdio.h>#include <stdlib.h>int IsPrime(int n){ int i; for(i=2;i*i<=n;i++) { if(n%i==0) return 0; } return 1;}int main(){ int n; int flag; scanf("%d",&n); flag=IsPrime(n); if(flag==1) printf("\\t"); else printf("\\n"); return 0;}<strong></strong>
- wikioi1430素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定!
- 素数判定
- 素数判定
- 为什么程序员的开发项目总是半途而废?
- UISwitch和UITextField
- Android listView 里面的 ViewHolder通用写法非常棒
- BBasic-Diary921
- vs2008(C#) IDE 使用之 菜单栏/编辑 (二)
- wikioi1430素数判定
- Elevator
- 二进制转十进制
- poj2777
- HDOJ 5143 NPY and arithmetic progression DFS
- 触摸和手势
- 一个cxf使用例子
- Cygwin vim的设置--解决Cygwin中vim的backspace不能正常使用
- nginx+apache+mysql+php+memcache+squid搭建集群web环境