求100到200之间的素数。要求:①将素数的判断写成函数;②写出main函数调用过程
一、素数是只有1和自身才能整du除的数。调用自定义的函数prime,对100~200间的奇数进行判断,是素数则输出。
#include "stdio.h"
int prime(int n){//判断100~200间的数是否为素数
int i;
if(!(n&1))
return 0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int n;
for(n=101;n<200;n+=2)
if(prime(n))//调用prime判断n是否为素数
printf("%4d",n);//是则输出n
printf("\n");
return 0;
}
二、main函数调用
#include "stdio.h"
main()
{
int k=1,i,sum=0;
for(;k<1000;k++)
{for(i=1;i<=k/2+1;i++)
{
if(k%i);
else
sum+=i;
}
if(k==sum)printf("%d\t",k);
sum=0;
}
}
扩展资料:
1、如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。
2、其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。
参考资料来源:百度百科-素数