使用c语言编写素数筛法代码
时间: 2023-10-21 12:11:37 浏览: 167
以下是使用C语言实现素数筛法的代码:
```c
#include <stdio.h>
#define MAX 1000000
int main(void)
{
int is_prime[MAX + 1], i, j;
// 初始化数组
for (i = 2; i <= MAX; i++)
{
is_prime[i] = 1;
}
// 筛选素数
for (i = 2; i * i <= MAX; i++)
{
if (is_prime[i])
{
for (j = i * i; j <= MAX; j += i)
{
is_prime[j] = 0;
}
}
}
// 输出素数
for (i = 2; i <= MAX; i++)
{
if (is_prime[i])
{
printf("%d ", i);
}
}
return 0;
}
```
该代码中,我们首先定义了一个常量`MAX`,用于表示筛选范围。我们使用一个数组`is_prime`来记录每个数字是否为素数。然后,我们将数组中除了2以外的元素都初始化为1,表示它们都是素数。
接着,我们从2开始,遍历到`MAX`的平方根。如果当前数字是素数,我们就将它的倍数都标记为非素数,即将数组中对应的元素改为0。
最后,我们遍历整个数组,输出所有素数。
阅读全文