c语言,本题要求读入2个正整数x和k,然后输出大于等于x的k个最小素数,从小到大排列,每一行5个数据
时间: 2024-03-11 10:51:26 浏览: 143
好的,以下是 C 语言的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
/*
判断一个数是否为素数
*/
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int x, k;
scanf("%d %d", &x, &k);
int count = 0; // 记录已经输出的素数个数
int num = x; // 从 x 开始找素数
while (count < k) {
if (is_prime(num)) {
printf("%d ", num);
count++;
if (count % 5 == 0) { // 每五个数一行
printf("\n");
}
}
num++;
}
return 0;
}
```
示例输入:
```
10 8
```
示例输出:
```
11 13 17 19 23
29 31 37
```
以上代码中,`is_prime(n)` 函数用于判断一个数是否为素数,参数 `n` 为待判断的数,返回值为布尔值。`x` 和 `k` 分别表示输入的两个正整数,`count` 记录已经输出的素数个数,`num` 表示从哪个数开始找素数。主循环中,如果当前的 `num` 是素数,则输出该数并将 `count` 加 1;如果已经输出了 5 个数,则换行;否则继续寻找素数。最终输出满足条件的 k 个素数。
阅读全文