1.每個不小於6的偶數都可以表示爲兩個奇素數之和;
2.每個不小於9的奇數都可以表示爲三個奇素數之和。
#include<stdio.h>
#include<math.h>
int check(int n){//判斷奇素數
int i;
if(!(n%2))//判斷奇數
return 0;
else{
for(i=2;i<=(int)(sqrt(n));i++){//判斷素數
if(!(n%i))
return 0;
}
}
return 1;
}
void check1(int n){
int i,j,k;
for(i=3;i<n-5;i++){
for(j=i;j<n-5;j++){
for(k=j;k<n-5;k++){
if((i+k+j==n)&&check(i)&&check(j)&&check(k)){
printf("%d %d %d\n",i,j,k);
}
}
}
}
}
void check2(int n){
int i,j;
for(i=3;i<n-2;i++){
for(j=i;j<n-2;j++){
if((i+j==n)&&check(i)&&check(j)){
printf("%d %d\n",i,j);
}
}
}
}
int main(){
int n;
puts("請輸入不小於6的偶數或不小於9的奇數");
scanf("%d",&n);
if(n%2)
check1(n);
else
check2(n);
return 0;
}