题目背景 Background
1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和。质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。需要特别说明的是1不是质数。 这就是哥德巴赫猜想。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。 从此,这道数学难题引起了几乎所有数学家的注意。哥德巴赫猜想由此成为数学皇冠上一颗可望不可及的“明珠”。
标签:
1 #include <stdio.h> 2 #include <math.h> 3 int pri(int a) //判断质数 4 { 5 for(int i=2;i<=sqrt(a);i++) 6 { 7 if(a%i==0) return 1;//找到了,返回1 8 } 9 return 0;//否则返回0 10 } 11 int main() 12 { 13 int n,a,b,c; 14 scanf("%d",&n); 15 for(int i=2;i<n;i++)//找到第一个数 16 { 17 if(pri(i)==0) 18 for(int j=2;j<n-i;j++)//判断第一个数是否为质数,如果是,寻找第二个数 19 { 20 if(pri(j)==0&&pri(n-i-j)==0) //找到2个数自然确定了第三个数 ,并判断第二和第三个数为质数 21 { 22 printf("%d %d %d\n",i,j,n-i-j); 23 return 0; 24 } 25 } 26 } 27 }
标签:
原文地址:http://www.cnblogs.com/geek-007/p/4417446.html