问题
哥德巴赫猜想:验证2000以内的正偶数都能分解为两个素数之和( 即验证哥德巴赫猜想对2000以内的正偶数成立 )
分析
穷举
解决方案
1: /** 2: * @file 031c.c 3: * @author Chaolong Zhang <emacsun@163.com> 4: * @date Mon Jun 3 23:20:36 2013 5: */ 6: 7: #include <stdio.h> 8: 9: int is_prime ( int n ); 10: 11: int main(int argc, char *argv[]) 12: { 13: int n,n1; 14: int flag1,flag2; 15: 16: 17: for (n=6; n <= 2000; ++n) 18: if (n%2==0 ) 19: { 20: for (n1=2;n1<= n/2 ; ++n1) 21: { 22: flag1=is_prime ( n1 ); 23: flag2=is_prime ( n-n1 ); 24: 25: if ( flag1 && flag2 ) 26: printf ("%d = %d + %d\n", n, n1,n-n1); 27: } 28: } 29: return 0; 30: } 31: 32: int is_prime ( int n ) 33: { 34: int i; 35: int flag=1; 36: if (n==2 || n==3) 37: return flag; 38: for ( i = 2; i <= ( n/2 + 1 ); ++i) 39: if (n%i == 0 ) { 40: flag=0;return flag; 41: } 42: 43: }
输出结果
略。通过本程序可以找出正偶数的所有可能的两素数之和。