根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不缺宏考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。
目前为止,人们伏做册未找到一个公式可求出所有质数。
#include <stdio.h>#include <stdlib.h>
#include <string.h>
void main(void)
{
int i,j=0,k
int a[1000]
char temp[10]
FILE*fp=fopen("质数.txt","w")
a[0]=2
itoa(a[0],temp,10)
strcat(temp,"\t")
fwrite(temp,1,strlen(temp),fp)
for(i=3i<1000000i+=2)
{
for(k=0k<=jk++)
{
if(i%a[k]==0)
break
}
if(k>j)
{
if(j<999)
a[++j]=i
itoa(i,temp,10)
strcat(temp,"\t")
fwrite(temp,1,strlen(temp),fp)
}
}
fclose(fp)
printf("DONE!!\n")
}
这个程序可以产生一高察个名为“质数”的txt文件,里面的就是一百万以内的质茄念逗数,质数表太大,有五百多K,发不了。注意,这个必须在32位颤卖的编译器中编译,在16位的tc中会出错。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)