
已解决问题
谷歌ahmj0159用户在2012.12.10提交了关于“贵士如何判断一个数是否为素数”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-10-30T13:27:26。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !
详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !
关于素数的判定
所谓“筛选法”指的是“埃拉托色尼(Erato
具体做法如下:
<1>先将1挖掉(因为1不是素数)。
<2>用2去除它后面的各个数,把能被2整除的数挖掉,即把2的倍数挖掉。
<3>用3去除
<4>分别
如上算法可表示为:
<1>挖
<2>用刚才被挖去的数的下一个数p
<3>检查p是否小于n^2
<4>纸上剩下的数就是素数。
#include<st
#include<math.h>
intmain(void)
inti;
intj
inta[101
for(i=1;i<=100;i++)//数组各元素赋值
a[i]=i;
for
{
if(
if(a[j]
a[j]=0;//i后数若为
}
intn=0;//对输出素数计数,以控制
for(i=2;i<=100;i++)//输出素数
{
if(a[i]!=0)
{
printf("%-5d",a[i]);//输出数组中非0元素(未挖去的数)
n++;
}
if(n==10)
{
printf("\n");//每行10个输出
n=0;
}
}
printf("\n");
return0;
}
运行结果(VC):
=================================================
2357111317192329
31374143475359616771
7379838997
=================================================