如何求C语言素数?
答案:2 悬赏:10 手机版
解决时间 2021-11-18 17:22
- 提问者网友:黑米和小志
- 2021-11-18 04:41
如何求C语言素数?
最佳答案
- 五星知识达人网友:西岸风
- 2021-11-18 04:58
如果一个数是素数,只要判断他是否能被2到这个数的开方之间的数整除就行了。
int flag=0;
if(m==2){ //先判断是不是2
flag=1;
}
else{
for(int i=2;i<=sqrt(m);i++){
flag=1;
if(m%i==0){ //不是素数
flag=0;
break;
}
}
}
return (flag==1)?m:-1; //判断是否为1,为1输出m,否则输出-1 ,-1表示不是素数
如果是求某个范围的素数,可以连续调用这个方法,上面是常规的方法,还有更好的方法自己去查一下。
int flag=0;
if(m==2){ //先判断是不是2
flag=1;
}
else{
for(int i=2;i<=sqrt(m);i++){
flag=1;
if(m%i==0){ //不是素数
flag=0;
break;
}
}
}
return (flag==1)?m:-1; //判断是否为1,为1输出m,否则输出-1 ,-1表示不是素数
如果是求某个范围的素数,可以连续调用这个方法,上面是常规的方法,还有更好的方法自己去查一下。
全部回答
- 1楼网友:拜訪者
- 2021-11-18 06:04
#include
void main()
{
int sushu(int *a);
int *a,n;
printf("请输入数字:");
scanf("%d",&n);
a=&n;
sushu(a);
}
int sushu(int *a)
{
int i,k=0;
for(i=2;i<=*a;i++)
if(*a%i==0) k++;
if(k==1) printf("Yes!\n");
else printf("No!\n");
}
void main()
{
int sushu(int *a);
int *a,n;
printf("请输入数字:");
scanf("%d",&n);
a=&n;
sushu(a);
}
int sushu(int *a)
{
int i,k=0;
for(i=2;i<=*a;i++)
if(*a%i==0) k++;
if(k==1) printf("Yes!\n");
else printf("No!\n");
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯