输入一个数,求该数的两个素数之和,C语言
时间: 2024-02-18 18:49:39 浏览: 100
#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("请输入一个正整数:");
scanf("%d", &n);
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);
break;
}
}
return 0;
}
相关问题
输入一个数,输出该数的所有两个素数之和,C语言
下面是一个简单的 C 语言程序,用于计算输入的数的所有两个素数之和:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int n) {
int i;
if (n < 2) return 0;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return 0;
}
return 1;
}
int main() {
int num, i, j;
scanf("%d", &num);
for (i = 2; i <= num / 2; i++) {
if (is_prime(i) && is_prime(num - i)) {
printf("%d + %d = %d\n", i, num - i, num);
}
}
return 0;
}
```
此程序首先定义了一个函数 `is_prime`,用于判断一个数是否为素数。然后,程序从用户输入中读取一个整数 `num`,并在循环中遍历从 2 到 `num/2` 的所有数。对于每个数 `i`,程序检查它是否为素数,并检查 `num-i` 是否也为素数。如果两个数都是素数,则输出它们的和以及 `num`。
输入一个数,求该数由哪些两个素数相加得到,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("请输入一个正整数:");
scanf("%d", &n);
printf("%d可以由以下两个素数相加得到:\n", n);
for (int i = 2; i <= n / 2; i++) {
if (is_prime(i) && is_prime(n - i)) { // 若i和n-i都是素数,则输出
printf("%d+%d=%d\n", i, n - i, n);
}
}
return 0;
}
```