可以看下错误吗?谢谢
#include<stdio.h>
#include<math.h>
int prime(int m)
{
int i;
for(i=2;i<=sqrt(m);i++)
if(m%i!=0&&i==sqrt(m)-1)
return 1;
else return 0;
}
int main()
{
int num,n,count=0;
scanf("%d",&num);
if(prime(num)==1)
printf("是素数\n");
else printf("不是素数\n");
for(n=101;n<=999;n++)
if(prime(n)==1)
count++;
printf("有%d个素数\n",count);
return 0;
}
if(m%i==0){return 0}
return 1放到for循环外面
意思是有任意一个被整除就不是素数
循环完了都没有被整除就是素数了
第9行错了
函数修改如下,供参考:
int prime(int m)
{
int i;
if (m < 2) return 0;
for (i = 2; i <= sqrt(m); i++)
if (m % i == 0)
return 0;
return 1;
}