可以使用筛法来判断 1-100 之间有多少个素数,并输出所有素数。筛法是一种通过枚举合数的因子来筛选出素数的方法。
下面是用 C 语言实现的代码示例:
#include <stdio.h>
#include <stdbool.h>
#define N 100
int main(void)
{
// 创建一个 bool 类型的数组,用来存储每个数是否为素数
bool prime[N + 1];
// 初始化数组,假设所有数都是素数
for (int i = 0; i <= N; i++)
prime[i] = true;
// 使用筛法筛选出素数
for (int i = 2; i <= N; i++)
{
// 如果 i 不是素数,则跳过
if (!prime[i])
continue;
// 输出 i
printf("%d ", i);
// 将 i 的倍数标记为合数
for (int j = i * i; j <= N; j += i)
prime[j] = false;
}
return 0;
}
运行结果如下:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
在这个程序中,使用了一个 bool 类型的数组来存储每个数是否为素数。使用筛法筛选出 1-100 之间的素数,并输出每个素数。
需要注意的是,C 语言没有内置的 bool 类型,需要使用头文件 stdbool.h 来支持 bool 类型。在上面的代码中,需要包含头文件 stdio.h 和 stdbool.h。