找出比给定质数小的质数 写一个c语言程序
时间: 2024-03-20 12:39:50 浏览: 26
以下是一个 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 main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d以下的质数有:", n);
for (int i = 2; i < n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
该程序首先定义了一个 `is_prime` 函数,用于判断一个数是否为质数。然后在主函数中,用户输入一个正整数 `n`,程序输出小于 `n` 的所有质数。程序使用了一个循环遍历从 `2` 到 `n-1` 的所有整数,如果该数为质数,则输出。
相关问题
在1000000找出比给定质数小的质数 写一个c语言程序
以下是一个 C 语言程序,可以找出比给定质数小的质数,限定在 1000000 范围内:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_N 1000000
bool is_prime[MAX_N + 1];
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
// 使用筛法求出 2~MAX_N 范围内的所有质数
for (int i = 2; i <= MAX_N; i++) {
is_prime[i] = true;
}
for (int i = 2; i * i <= MAX_N; i++) {
if (is_prime[i]) {
for (int j = i * i; j <= MAX_N; j += i) {
is_prime[j] = false;
}
}
}
printf("%d以下的质数有:", n);
for (int i = 2; i < n; i++) {
if (is_prime[i]) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
该程序在主函数中,用户输入一个正整数 `n`,程序输出小于 `n` 的所有质数。为了快速判断某个数是否为质数,程序使用了经典的筛法算法,先求出 2~1000000 范围内的所有质数,然后在输出时直接使用已求出的质数表进行判断。
在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` 大的下一个质数,并将其输出。