fork download
  1. #include <stdio.h>
  2.  
  3. //関数のプロトタイプ宣言
  4. void goldbach(int n);
  5. void print(int a, int b);
  6. int prime(int n);
  7.  
  8. //main関数
  9. int main(void){
  10. int a;
  11.  
  12. scanf("%d", &a);
  13. goldbach(a);
  14.  
  15. return 0;
  16. }
  17.  
  18. // ゴールドバッハ予想
  19. void goldbach(int n){
  20. int i;
  21. for(i = 2; i <= n/2; i++){
  22. if(prime(i) && prime(n - i)){
  23. print(i, n - i);
  24. }
  25. }
  26. }
  27.  
  28. //結果表示
  29. void print(int a, int b){
  30. static int count = 0;
  31. count++;
  32. printf("%2d: %d = %d + %d\n", count, a+b, a, b);
  33. }
  34.  
  35. //素数判定
  36. int prime(int n){
  37. int i;
  38. int sosuu = 1;
  39.  
  40. for(i=2; i<n; i++){
  41. if(n%i==0){
  42. sosuu = 0;
  43. break;
  44. }
  45. }
  46. return sosuu;
  47. }
  48.  
Success #stdin #stdout 0s 5308KB
stdin
24
stdout
 1: 24 = 5 + 19
 2: 24 = 7 + 17
 3: 24 = 11 + 13