在此示例中,您将学习检查用户输入的整数是否可以表示为所有可能组合的两个质数之和。
要理解此示例,您应该了解以下C语言编程主题:
为了完成此任务,我们将创建一个名为checkPrime()的函数 。
如果传递给函数的数量是一个质数,checkPrime()将返回1。
#include <stdio.h>
int checkPrime(int n);
int main() {
int n, i, flag = 0;
printf("输入一个正整数: ");
scanf("%d", &n);
for (i = 2; i <= n / 2; ++i) {
//i是质数的条件
if (checkPrime(i) == 1) {
//n-i是质数的条件
if (checkPrime(n - i) == 1) {
printf("%d = %d + %d\n", n, i, n - i);
flag = 1;
}
}
}
if (flag == 0)
printf("%d 不能表示为两个质数的和。", n);
return 0;
}
//检查质数的函数
int checkPrime(int n) {
int i, isPrime = 1;
for (i = 2; i <= n / 2; ++i) {
if (n % i == 0) {
isPrime = 0;
break;
}
}
return isPrime;
}
输出结果
输入一个正整数: 34
34 = 3 + 31
34 = 5 + 29
34 = 11 + 23
34 = 17 + 17