中易网

怎么判断一个数是不是质数(VC++)

答案:3  悬赏:50  
解决时间 2021-04-28 11:40
  • 提问者网友:全員惡人
  • 2021-04-27 21:33
电脑用的是VisualC++编译器,求判断一个数是不是质数的程序,要求数用键盘输入

谢谢,辛苦了,不过能不能保证比那个数的平方根小的质数全在那一个+30的循环里?
最佳答案
  • 二级知识专家网友:哥在撩妹请勿打扰
  • 2021-04-27 22:14
#include
#include
#include
int isP(long N)
{
int t=1;
long m,i;
if(!(N%2)&&N!=2)return 0;
else if(!(N%3)&&N!=3)return 0;
else if(!(N%5)&&N!=5)return 0;
m=(long)sqrt((double)N);
for(i=7;i {
if(!(N%i)){t=0;break;}
if(!(N%(i+4))){t=0;break;}
if(!(N%(i+6))){t=0;break;}
if(!(N%(i+10))){t=0;break;}
if(!(N%(i+12))){t=0;break;}
if(!(N%(i+16))){t=0;break;}
if(!(N%(i+22))){t=0;break;}
if(!(N%(i+24))){t=0;break;}
}
return t;
}

int main(void)
{
long s;
scanf("%ld",&s);
printf("%d",isP(s));
getch();
return 0;
}
//这是试除法判断素数!
========================================
可以保证!这是将可能的合数全部剔除了的筛子~筛子大小是2*3*5=30;筛子的大小还可以调整,但是,太小和太大效率都不高,这个筛子的效率是加1的效率的3.7倍左右!
========================================
对了,这不是我临时写的,也就没有所谓的幸苦~以前写的,见到你这个问题,就贴出来了!
全部回答
  • 1楼网友:偏爱自由
  • 2021-04-28 00:04
#include #include #include int isP(long N) { long m,i; m=(long)sqrt((double)N); for(i=2;i
  • 2楼网友:偏爱自由
  • 2021-04-27 22:52
123
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息