数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入一个大于2的正整数,当输入为偶数时,在一行中按照格式“N = p + q”输出N的素数分解,其中p 、 q均为素数且p ≤ q。因为这样的分解可能不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。当输入为奇数时,输出'Data error!' 。
举一反三
- 附加题(10分,做对加分,不做不扣分) 功能:1742年6月,德国著名的数学家哥德巴赫预言“任何一个6以上的偶数都可以分解为两个素数的和”,这就是著名的哥德巴赫猜想,俗称“1+1=2”,至今未得到数学证明。例如,6=3+3,8=5+3,38=7+31=19+19等。 输出示例:38=7+31=19+19 要求:将完整的程序代码和运行结果,或截图,或拍照上传,图片中无用的区域要尽量小。 [br][/br] 【提示】对于任意一个偶数 n=素数p+素数q,问题是要找到一个比n小的素数p,使得q=n-p也是素数。 该分解不唯一,需要输出所有分解方式。 【思路】 令n=p+q,可以假设p≤n/2,maxp=n//2,构造p=2,3,.....maxp的循环,判断p是否是素数。如果p不是素数,就令p=p+1继续找;否则,就判断q=n-p是否是素数,如果不是,就令p=p+1继续找,否则,q也是素数,就得到一个分解n=p+q ,输出该分解结果。
- 哥德巴赫猜想之一是任何一个大于5的偶数都可以表示为两个素数之和,编程验证这一猜想.
- 编程验证哥德巴赫猜想,任何大于6的偶数可以表示为两个素数之和,如10=3+7。提示:给定任意一个大于6的偶数z,计算输出两个素数x、y即可,使得x+y=z。
- 验证哥德巴赫猜想 对任意给定的偶数n,验证n可以写成两个素数之和,要求n由用户输入。 德国数学家哥德巴赫于1742年提出了任一大于2的偶数都可写成两个素数之和的猜想,这一猜想是世界近代三大数学难题之一,至今未能给出理论证明
- 证明哥德巴赫猜想(即每个大于2的偶数是两个素数之和)等价于语句每个大于5的整数是三个素数之和。