C语言将一个偶数分解为两个素数
时间: 2024-05-13 16:15:24 浏览: 179
可以使用以下方法将一个偶数n分解为两个素数:
1. 从2开始遍历到n,找到第一个素数p。
2. 如果n-p也是一个素数,则分解成功,输出p和n-p。
3. 如果n-p不是素数,则继续从p+1开始遍历找到下一个素数,重复步骤2和3。
以下是一个使用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;
}
/* 分解一个偶数为两个素数 */
void decompose(int n) {
if (n <= 2 || n % 2 != 0) {
printf("Invalid input\n");
return;
}
for (int i = 2; i <= n / 2; i++) {
if (is_prime(i) && is_prime(n - i)) {
printf("%d = %d + %d\n", n, i, n - i);
return;
}
}
printf("No such pair of primes\n");
}
int main() {
int n;
printf("Enter an even number: ");
scanf("%d", &n);
decompose(n);
return 0;
}
```
该程序先判断输入的偶数是否合法,然后从2开始遍历到n/2,找到第一个素数p,并判断n-p是否也是素数。如果找到了一对素数,则输出它们;否则输出“无法分解”。
阅读全文