当m为素数时返回1,否则返回0。请完善(程序中的三个空)程序并分析运行结果。
#include <stdio.h>
#include <math.h>
int prime(int m)
{
int i,n;
if(m==1) return 0;
n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0) ① ;
return 1;
}
void main()
{
int count=0,m;
for(m=2; ② ;m++)
{
if(prime(m) ③ 0)
{
printf("%6d",m);
count++;
if(count%10==0) printf("\n");
}
}
}
#include <stdio.h>
#include <math.h>
int prime(int m)
{ int i,n;
if(m==1) return 0;
n=sqrt(m);
for(i=2; i<=n; i++)
if(m%i==0)return 0;
return 1;
}
void main()
{ int count=0,m;
for(m=2;m<100; m++)
{ if(prime(m)!=0)
{ printf("%6d",m);
count++;
if(count%10==0) printf("\n");
}
}
}
扩展资料:
质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。
如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。
参考资料来源:百度百科-质数