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