在此示例中,您將學(xué)習(xí)檢查用戶輸入的整數(shù)是否可以表示為所有可能組合的兩個(gè)質(zhì)數(shù)之和。
要理解此示例,您應(yīng)該了解以下C語言編程主題:
為了完成此任務(wù),我們將創(chuàng)建一個(gè)名為checkPrime()的函數(shù) 。
如果傳遞給函數(shù)的數(shù)量是一個(gè)質(zhì)數(shù),checkPrime()將返回1。
#include <stdio.h>
int checkPrime(int n);
int main() {
int n, i, flag = 0;
printf("輸入一個(gè)正整數(shù): ");
scanf("%d", &n);
for (i = 2; i <= n / 2; ++i) {
//i是質(zhì)數(shù)的條件
if (checkPrime(i) == 1) {
//n-i是質(zhì)數(shù)的條件
if (checkPrime(n - i) == 1) {
printf("%d = %d + %d\n", n, i, n - i);
flag = 1;
}
}
}
if (flag == 0)
printf("%d 不能表示為兩個(gè)質(zhì)數(shù)的和。", n);
return 0;
}
//檢查質(zhì)數(shù)的函數(shù)
int checkPrime(int n) {
int i, isPrime = 1;
for (i = 2; i <= n / 2; ++i) {
if (n % i == 0) {
isPrime = 0;
break;
}
}
return isPrime;
}輸出結(jié)果
輸入一個(gè)正整數(shù): 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17