写一个c++代码,实现质数筛
时间: 2023-05-25 16:04:50 浏览: 106
cpp代码-一定范围内的素数
以下是一个用C语言实现的质数筛的代码,求出1到n之间的所有质数:
```
#include <stdio.h>
int main()
{
int n;
printf("请输入需要筛选的范围 n:");
scanf("%d", &n);
int prime[n + 1];
for (int i = 2; i <= n; i++) {
prime[i] = 1;
}
for (int i = 2; i * i <= n; i++) {
if (prime[i]) {
for (int j = i * i; j <= n; j += i) {
prime[j] = 0;
}
}
}
printf("1到%d之间,所有的质数为:\n", n);
for (int i = 2; i <= n; i++) {
if (prime[i]) {
printf("%d\n", i);
}
}
return 0;
}
```
代码中首先输入需要求的范围 n,然后定义一个大小为 n+1 的数组 prime[],用于存储每个数是否为质数,初始时全部设为1。然后从2开始循环判断,若找到的数是质数,则将其倍数所对应的 prime[] 设置成0。最后再遍历 prime[],输出所有值为1的下标,即为所有质数。
阅读全文