用C语言写一个比较简单的代码给定一个正整数 n , ( 20 ≤ n ≤ 100 ) n,(20≤n≤100),求出小于等于 n n的所有素数。 第1行是一个整数T,表示随后有T组数据。每组数据占1行,每行有1个整数。
时间: 2024-10-18 10:14:43 浏览: 37
在C语言中,我们可以使用Sieve of Eratosthenes算法来找出所有小于等于给定正整数n的素数。下面是一个简单的代码示例:
```c
#include <stdio.h>
// 判断是否为素数的辅助函数
int is_prime(int num) {
if (num <= 1) return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return 0;
}
return 1;
}
// 主函数,输入一个正整数并打印其所有素数因子
void find_primes(int n) {
printf("素数因子:\n");
for (int i = 2; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
int T;
scanf("%d", &T); // 读取测试用例的数量
while (T--) { // 遍历每一个测试用例
int n;
scanf("%d", &n);
// 确保输入范围在20到100之间
if (n >= 20 && n <= 100) {
find_primes(n);
} else {
printf("输入值超出范围!\n");
}
}
return 0;
}
```
这个程序首先会读取测试用例的数量T,然后对于每个测试用例,它会读取一个正整数n,并检查它是否在20到100范围内。如果在范围内,就调用`find_primes()`函数打印出所有小于等于n的素数;否则,提示输入值超出范围。
阅读全文