zoukankan      html  css  js  c++  java
  • 数学趣题——哥德巴赫猜想的近似证明

    一、分析

        可在较小范围内使用枚举法,验证每一个偶数是否能表示成为两个素数的和。

    二、源码

       1: #include <string.h>
       2: #include <stdio.h>
       3:  
       4: int IsGoldbach(int a);
       5: int TestifyGB_Guess(int low, int high);
       6: int IsPrime(int i);
       7:  
       8: int main()
       9: {
      10:     printf("Test 1-100 is Goldbach Guess\n");
      11:     if (TestifyGB_Guess(1, 100))
      12:         printf("in 1-100 guess is right\n");
      13:     else
      14:         printf("guess is wrong\n");
      15:     return 0;
      16: }
      17:  
      18: int TestifyGB_Guess(int low, int high)
      19: {
      20:     int i, j = 0;
      21:     int flag = 0;
      22:  
      23:     for (i = low; i <= high; ++i)
      24:     {
      25:         if (i % 2 == 0 && i > 2)
      26:         {
      27:             if (IsGoldbach(i))
      28:             {
      29:                 j++;
      30:                 if (j == 5)
      31:                 {
      32:                     printf("\n");
      33:                     j = 0;
      34:                 }
      35:             }
      36:             else
      37:             {
      38:                 flag = 1;
      39:                 break;
      40:             }
      41:         }
      42:     }
      43:  
      44:     if (flag == 0)
      45:         return 1;
      46:     else
      47:         return 0;
      48: }
      49:  
      50: int IsGoldbach(int a)
      51: {
      52:     int i, flag = 0;
      53:     for (i = 1; i <= a / 2; ++i)
      54:     {
      55:         if (IsPrime(i) && IsPrime(a - i))
      56:         {
      57:             flag = 1;
      58:             printf("%d=%d+%d ", a, i, a-i);
      59:             break;
      60:         }
      61:     }
      62:  
      63:     if (flag == 1)
      64:         return 1;
      65:     else
      66:         return 0;
      67: }
      68:  
      69: int IsPrime(int i)
      70: {
      71:     int n, flag = 1;
      72:     if (1 == i)
      73:         flag = 0;
      74:  
      75:     for (n=2; n<i; n++)
      76:     {
      77:         if (i%n == 0)
      78:         {
      79:             flag = 0;
      80:             break;
      81:         }
      82:     }
      83:  
      84:     if (flag == 1)
      85:         return 1;
      86:     else
      87:         return 0;
      88: }
      89:  
  • 相关阅读:
    svg入门
    常用颜色对照表
    字节序
    eclipse常用快捷键
    jenkins 安装
    redis
    Linux
    jenkins
    jenkins
    jenkins- 自动部署java包至远程服务器
  • 原文地址:https://www.cnblogs.com/steven_oyj/p/1743285.html
Copyright © 2011-2022 走看看