C语言5、编写程序,要求从键盘上输入整数m和k 输出大于且紧靠m的k个素数。
时间: 2023-05-27 21:04:51 浏览: 211
```c
#include <stdio.h>
#include <math.h>
// 判断是否为素数
int is_prime(int n) {
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, k;
printf("请输入一个整数m:");
scanf("%d", &m);
printf("请输入一个整数k:");
scanf("%d", &k);
int count = 0; // 记录输出的素数个数
int i = m + 1; // 从m的下一个开始找素数
while (count < k) {
if (is_prime(i)) {
printf("%d ", i);
count++;
}
i++;
}
printf("\n");
return 0;
}
```
运行结果:
```
请输入一个整数m:10
请输入一个整数k:5
11 13 17 19 23
```
相关问题
5、编写程序,要求从键盘上输入整数m和k 输出大于且紧靠m的k个素数。
思路:
判断一个数是否为素数,可以用该数从2开始除,一直到该数的平方根,如果有一个数可以整除该数,那么该数就不是素数。
通过一个循环遍历大于m的整数,如果是素数,就加入到一个列表中,当列表元素个数达到k时,输出列表,结束程序。
代码如下:
```python
import math
m = int(input("请输入一个整数m:"))
k = int(input("请输入一个整数k:"))
primes = [] # 保存素数的列表
x = m + 1 # 从大于m的下一个数开始遍历
while len(primes) < k:
is_prime = True
for i in range(2, int(math.sqrt(x))+1):
if x % i == 0:
is_prime = False
break
if is_prime:
primes.append(x)
x += 1
print(primes)
```
示例输出:
```
请输入一个整数m:10
请输入一个整数k:3
[11, 13, 17]
```
C语言,要求从键盘上输入m和k,输出大于且紧靠m的k个素数
以下是C语言代码实现:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断素数
bool isPrime(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 m, k;
printf("请输入m和k:");
scanf("%d%d", &m, &k);
int count = 0;
for (int i = m + 1; count < k; i++) {
if (isPrime(i)) {
printf("%d ", i);
count++;
}
}
printf("\n");
return 0;
}
```
首先定义一个`isPrime`函数,用于判断一个数是否为素数。然后从键盘上输入m和k。接着用一个循环,从m+1开始,依次判断每个数是否为素数,如果是,则输出,并计数器加1,直到输出k个素数为止。最后输出一个换行符,结束程序。
阅读全文