打印出恰好比自然数n大的5个素数C语言
时间: 2024-03-14 11:46:02 浏览: 17
好的,以下是一个程序,可以打印出恰好比自然数n大的5个素数:
```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 n;
printf("Enter a number: ");
scanf("%d", &n);
int count = 0;
int current = n + 1;
while (count < 5) {
if (is_prime(current)) {
printf("%d ", current);
count++;
}
current++;
}
printf("\n");
return 0;
}
```
这个程序中的 `is_prime` 函数用来判断一个数是否为素数。在主函数中,我们先输入一个自然数 `n`,然后从 `n+1` 开始依次判断每个数是否为素数,如果是素数,就打印出来,并且计数器加一,直到计数器达到 5 为止。
相关问题
打印n以内的所有素数C语言
以下是一个打印n以内的所有素数的C语言程序:
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("Enter a positive integer n: ");
scanf("%d", &n);
// loop through all numbers from 2 to n
for (i = 2; i <= n; i++) {
int is_prime = 1;
// check if i is prime
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
// print i if it is prime
if (is_prime) {
printf("%d\n", i);
}
}
return 0;
}
```
该程序使用两个嵌套的循环,外部循环从2到n遍历所有数字,内部循环检查每个数字是否为素数。如果一个数字是素数,就打印它。
注意,在内部循环中,我们只需要检查从2到该数字的一半之间的数是否能够整除该数字,因为大于一半的除数就不可能整除该数字了。此外,我们使用一个名为is_prime的标志变量来记录当前数字是否为素数,如果是素数,is_prime的值为1,否则为0。
该程序可以输出n以内的所有素数,例如,如果输入n为10,输出将是:
```
2
3
5
7
```
在1000000找出比给定质数大的最小质数 写一个c语言程序
以下是一个C语言程序,可以找出比给定质数大的最小质数:
```c
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int next_prime(int n) {
int i = n + 1;
while (!is_prime(i)) {
i++;
}
return i;
}
int main() {
int num = 1000000;
int next = next_prime(num);
printf("The next prime after %d is %d\n", num, next);
return 0;
}
```
程序中的 `is_prime` 函数用于判断一个数是否为质数,`next_prime` 函数用于找出比给定质数大的最小质数。在 `main` 函数中,我们先定义了一个变量 `num`,表示给定的质数。然后调用 `next_prime` 函数,得到比 `num` 大的下一个质数,并将其输出。