求100内的某个数n,n和n+4和n+10都是素数,我的程序哪儿不对

来源:百度知道 编辑:UC知道 时间:2024/06/21 22:14:38
#include<math.h>
int prime(int n)
{int i,m;
m=sqrt(n);
for(i=1;i<m;i++)
if(n%i==0) break;
if(i<m) return (0);
else return (1);
}

main()
{
int i;
for(i=1;i<=100;i++)
{if(prime(i)+prime(i+4)+prime(i+10)==3)
printf("%4d",i);}
}

prime 中 i 在循环中的初始值不能为1(因为任何实数都能整除一),应该为2.另外,应该是 i<=m.
另外,一楼的仁兄,这里 i<m 是用来决定此数不是质数的条件,故应该为 i<m ,说明 i 还没到 m 就已经出循环了。

for(i=1;i<=m;i++)
if(n%i==0) break;
if(i<=m) return (0);

你这个程序除了楼上的答案以外,貌似还不能输入数字。