程序代码:
#include <stdio.h>
bool foot[1000] = {0};
int main()
{
int i,j,k;
for(i = 2;i<=31;i++)
{
if(!foot[i])
{
for(j = 2*i;j<=1000;j+=i)
foot[j] = 1;
}
}
for(i = 2;i<=1000;i++)
if(!foot[i])
printf("%d\n",i);
return 0;
}
质数筛选法
时间限制:1000 ms
|
内存限制:8192 KB
描述
质数是只能被1及其本身整除的数。Eratosthenes筛选法是一种寻找质数的方法。
它的操作如下:
a)创建一个数组,将它的所有元素都初始化为1(真)。下标为质数的数组元素将保持是1,其他元素最后都回
被设置为0。在这道习题中,可以不考虑元素0和元素1。
b)从数组下标2开始,每次找到一个值为1的数组元素是,对数组剩余部分循环,并将下标为该元素下标倍数的
元素设置为0。对于数组下标2,数组中2之后的下标为2的倍数的元素(下标4、6、8、10等)都被设置为0;
对于数组下标3,数组中3之后的下标为3的倍数的元素(下标6、9、12、15等)都被设置为0;依次类推。
输入
(无)
输出
从小到达依次打印2到999之间的质数,每行一个整数。
样例输入
(无)样例输出
2
3
.
.
(以下省略)