在以往判断一个数n是不是素数时,我们都是采用i从2到sqrt(n)能否整除n.如果能整除,则n是合数;否则是素数.但是该算法的时间复杂度为O(sqrt(n)),当n较大时,时间性能很差,特别是在网络安全和密码学上一般都是需要很大的素数.而从目前来看,确定性算法判断素数的性能都不好,所以可以用MC概率...
分类:
编程语言 时间:
2015-01-06 13:44:33
阅读次数:
408
#include#includeint prime(int n){ int i; if(n=sqrt(n)){ printf("%d是素数!\n",n); return 0; }}void main(){ int n; while(1){ printf("请输入一个数字:"); scanf("...
分类:
编程语言 时间:
2014-12-18 22:01:16
阅读次数:
227
#include#includeint main(){ int n,i; while(scanf("%d",&n)!=EOF) { int flag=1; for(i=2;i<=sqrt(n)&&flag;i++) { if(n%i!=0) { flag=1; } els...
分类:
其他好文 时间:
2014-10-26 01:35:54
阅读次数:
123
#include #include int main(){ // 输入一个整数数判断是不是素数 // 方法是用这个数去除2到根号num这些数如果为0则不是素数 int m,i,k; printf("请输入一个整数:"); scanf("%d",&m); k=(int)sqrt(m); ...
分类:
编程语言 时间:
2014-10-15 13:15:00
阅读次数:
177
//判断一个数,是不是素数
inta=0;
printf("请输入一个数:");//输出
BOOLisTrue=YES;//标识位,用来表示状态.
scanf("%d",&a);//输入
for(inti=2;i<a;i++){
if(a%i==0){
isTrue=NO;
}
}
if(isTrue==YES){
printf("这是一个素数");
}else{
printf("这不是一个素数");
}//第..
分类:
其他好文 时间:
2014-08-11 10:19:52
阅读次数:
259
筛选法求素数:
筛选素数的方法不是直接判断一个数是不是素数,而是将不是素数的数全部去除,剩余的就是素数了。
1.如果区间包含1,首先将1标记为非素数。
2.从下一个最小的素数a开始,将该素数的倍数(2a,3a,……,ka)全部标记为非素数。
3.从a的后面找下一个最小的素数,重复2操作。
4.重复2,3操作,直到所有元素都筛选完为止。
例如:筛选1到25之间的素数
①按部就班地按上面...
分类:
其他好文 时间:
2014-08-08 16:02:36
阅读次数:
335