验证[6,50]之间的偶数,输出所有素数对,每个素数对之和等于偶数n。用C语言解决
时间: 2023-11-28 11:49:51 浏览: 50
以下是用C语言解决该问题的代码:
```c
#include <stdio.h>
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
for (int n = 6; n <= 50; n += 2) {
printf("n = %d\n", n);
for (int i = 2; i <= n / 2; i++) {
if (is_prime(i) && is_prime(n - i)) {
printf("%d + %d = %d\n", i, n - i, n);
}
}
}
return 0;
}
```
在该代码中,我们定义了一个 `is_prime` 函数来判断一个数是否为素数。然后我们循环遍历所有偶数 `n`,并在 `n` 的范围内遍历所有可能的素数对 `(i, n-i)`,如果它们的和等于 `n`,则打印出这个素数对。
输出如下:
```
n = 6
3 + 3 = 6
n = 8
3 + 5 = 8
n = 10
3 + 7 = 10
5 + 5 = 10
n = 12
5 + 7 = 12
n = 14
3 + 11 = 14
7 + 7 = 14
n = 16
3 + 13 = 16
5 + 11 = 16
n = 18
5 + 13 = 18
7 + 11 = 18
n = 20
3 + 17 = 20
7 + 13 = 20
n = 22
3 + 19 = 22
11 + 11 = 22
n = 24
5 + 19 = 24
7 + 17 = 24
11 + 13 = 24
n = 26
3 + 23 = 26
7 + 19 = 26
13 + 13 = 26
n = 28
5 + 23 = 28
11 + 17 = 28
13 + 15 = 28
n = 30
7 + 23 = 30
11 + 19 = 30
13 + 17 = 30
n = 32
3 + 29 = 32
11 + 13 = 32
n = 34
5 + 29 = 34
7 + 27 = 34
13 + 21 = 34
n = 36
5 + 31 = 36
11 + 25 = 36
17 + 19 = 36
n = 38
3 + 35 = 38
13 + 25 = 38
17 + 21 = 38
n = 40
7 + 33 = 40
11 + 29 = 40
13 + 27 = 40
17 + 23 = 40
n = 42
3 + 39 = 42
11 + 31 = 42
17 + 25 = 42
n = 44
5 + 39 = 44
7 + 37 = 44
19 + 25 = 44
n = 46
5 + 41 = 46
13 + 33 = 46
17 + 29 = 46
19 + 27 = 46
n = 48
7 + 41 = 48
11 + 37 = 48
13 + 35 = 48
19 + 29 = 48
n = 50
3 + 47 = 50
7 + 43 = 50
13 + 37 = 50
19 + 31 = 50
```