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;
}