#include <stdio.h>
//関数のプロトタイプ宣言
void goldbach(int n);
void print(int a, int b);
int prime(int n);
//main関数
int main(void){
int a;
goldbach(a);
return 0;
}
// ゴールドバッハ予想
void goldbach(int n){
int i;
int count=0;
for(i=2; i<=n/2; i++){
if(prime(i) && prime(n-i)){
print(i, n-i);
}
}
}
//結果表示
void print(int a, int b){
static int count = 0;
count++;
printf("%2d: %d = %d + %d\n", count
, a
+b
, a
,b
); }
//素数判定
int prime(int n){
int i;
int sosuu = 1;
for(i=2; i<n; i++){
if(n%i==0){
sosuu = 0;
break;
}
}
return sosuu;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Ci8v6Zai5pWw44Gu44OX44Ot44OI44K/44Kk44OX5a6j6KiACnZvaWQgZ29sZGJhY2goaW50IG4pOwogICAgdm9pZCBwcmludChpbnQgYSwgaW50IGIpOwogICAgaW50IHByaW1lKGludCBuKTsKIAovL21haW7plqLmlbAKaW50IG1haW4odm9pZCl7CiAgICBpbnQgYTsKICAgIHNjYW5mKCIlZCIsICZhKTsKICAgIGdvbGRiYWNoKGEpOyAgICAKIAogICAgcmV0dXJuIDA7Cn0KIAovLyDjgrTjg7zjg6vjg4njg5Djg4Pjg4/kuojmg7MKdm9pZCBnb2xkYmFjaChpbnQgbil7CglpbnQgaTsKCWludCBjb3VudD0wOwoJCmZvcihpPTI7IGk8PW4vMjsgaSsrKXsKCWlmKHByaW1lKGkpICYmIHByaW1lKG4taSkpewoJCXByaW50KGksIG4taSk7Cgl9Cn0KCQoJCn0KIAovL+e1kOaenOihqOekugp2b2lkIHByaW50KGludCBhLCBpbnQgYil7CglzdGF0aWMgaW50IGNvdW50ID0gMDsgCgljb3VudCsrOwogCiAgICBwcmludGYoIiUyZDogJWQgPSAlZCArICVkXG4iLCBjb3VudCwgYStiLCBhLGIpOwp9CiAKLy/ntKDmlbDliKTlrpoKaW50IHByaW1lKGludCBuKXsKICAgIGludCBpOwogICAgaW50IHNvc3V1ID0gMTsKIAogICAgZm9yKGk9MjsgaTxuOyBpKyspewogICAgICAgIGlmKG4laT09MCl7CiAgICAgICAgICAgIHNvc3V1ID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHNvc3V1Owp9CiA=