c语言输出1-100的素数
时间: 2024-10-22 15:17:04 浏览: 102
在C语言中,输出1到100之间的素数,可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)。这是一种古老而有效的找出所有小于给定数值的质数的方法。以下是简单的程序示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断是否为素数的函数
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) { // 只需检查到其平方根即可
if (num % i == 0)
return false;
}
return true;
}
// 输出1到100间的素数
void printPrimes(int n) {
bool prime[n + 1]; // 初始化所有数字为true(假设它们都是素数)
memset(prime, true, sizeof(prime)); // 将0和1标记为非素数
for (int p = 2; p * p <= n; p++) {
// 如果prime[p]没被改变过,说明p是素数
if (prime[p]) {
// 标记p的所有倍数为非素数
for (int i = p * p; i <= n; i += p)
prime[i] = false;
}
}
printf("素数在1到100范围内的有:\n");
for (int p = 2; p <= n; p++)
if (prime[p])
printf("%d ", p);
}
int main() {
printPrimes(100);
return 0;
}
```
当你运行这个程序,它会输出从1到100的所有素数。
阅读全文