C语言素数的求法

输入一个数判断是否为素数,要求用指针和函数“函数用来判断”;是返回YES,否返回NO。

如果一个数是素数,只要判断他是否能被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表示不是素数

如果是求某个范围的素数,可以连续调用这个方法,上面是常规的方法,还有更好的方法自己去查一下。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-31
#include<stdio.h>
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"); /*当k=1时,则说明只有数本身可以整除自己*/
else printf("No!\n");
}本回答被网友采纳
第2个回答  2013-10-31
代码: #include<stdio.h>
#include<math.h>bool fun(int* n)
{ int i;
for(i=2;i<=sqrt(*n);i++)
{
if(*n%i==0)
return false;
}
return true;
}void main()
{
int n;
printf("请输入一个数:\n");
scanf("%d",&n);
if(fun(&n))
printf("YES\n");
else
printf("NO\n");
} 图:本回答被网友采纳
相似回答