验证[6,50]之间的偶数,输出所有素数对,每个素数对之和等于偶数n。用C语言解决
时间: 2023-11-28 09:49:55 浏览: 57
以下是用C语言解决该问题的代码:
```c
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("Enter an even number between 6 and 50: ");
scanf("%d", &n);
if (n % 2 != 0 || n < 6 || n > 50) {
printf("Invalid input!\n");
return 0;
}
printf("Prime pairs:\n");
for (int i = 2; i <= n / 2; i++) {
if (isPrime(i) && isPrime(n - i)) {
printf("%d + %d = %d\n", i, n - i, n);
}
}
return 0;
}
```
代码思路:
1. 定义一个函数 `isPrime`,用于判断一个数是否为素数。该函数接收一个整数参数 `num`,如果 `num` 是素数,则返回 1,否则返回 0。
2. 在 `main` 函数中,首先让用户输入一个偶数 `n`,并判断其是否在 [6, 50] 的范围内,如果不是,则输出提示信息并结束程序。
3. 然后使用一个循环,从 2 开始遍历到 `n/2`,对于每个数 `i`,判断 `i` 和 `n-i` 是否都是素数,如果是,则输出这两个数和它们的和。
4. 程序运行结束。
注意:该代码中没有对输入的偶数进行奇偶性判断,因为题目已经要求输入的数必须是偶数。
阅读全文