/*
* 目标:将一个偶数,分解成质数之和。
*/
public class DisintegrateEvenNumber {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = DisintegrateEvenNumber.getDisintegrateResult(14);
System.out.println(str);
}
//判断一个正整数是否是质数
public static boolean isPrimeNum(int inputNum)
{
boolean result = true;
if (inputNum !=0 && inputNum != 1)
{
for (int i = 2; i < inputNum; i++)
{
if (inputNum % i == 0)
{
result = false;
break;
}
}
}
else
{
result = false;
}
return result;
}
//判断是否是一个偶数
public static boolean isEven(int input)
{
return !(input % 2 != 0);
}
/*
* 返回给定偶数下的质数求和的表达式
* @input inputNum 给定的偶数
* @return String 返回质数的表达式
*/
public static String getDisintegrateResult(int inputNum)
{
String result = null;
if (!DisintegrateEvenNumber.isEven(inputNum))
{
result = "Your input is not a Even, please confirm.";
}
else if(inputNum < 0)
{
result = "Your input is incorrect, shoube be bigger then 0";
}
else
{
//循环遍历小于inputNum-2的所有数字,找到第一个质数i,并且判断偶数减去质数的值是否是质数,如果是,直接返回。
for (int i = inputNum - 2; i > 0; i--)//排除1
{
if (isEven(i))
{
continue;
}
else if (isPrimeNum(i) && isPrimeNum(inputNum - i))
{
int tmp = inputNum - i;
result = "" + inputNum + " = " + i + " + " + tmp;
break;
}
else
{
continue;
}
}
}
if (result == null)
{
result = "Your input can not be disintegrated.";
}
return result;
}
}
分享到:
相关推荐
本篇文章将基于给定的代码示例,详细介绍如何通过编程实现将一个正偶数分解为两个素数之和的功能,同时也会对相关的数学概念和技术细节进行深入探讨。 #### 数学基础 1. **素数**:素数是指只能被1和自身整除的...
任意输入一个偶数n(n>4),请将它分解为两个素数之和。
简单来说,就是"每个大于2的偶数都是两个质数之和"。这个看似简单的假设,至今仍未被证明或否定,尽管已经通过计算机验证了极大数量的大偶数。 在我们的例子中,我们关注的是500到1000之间的大偶数。这个范围内的...
将大于四的偶数分解成2个素数相加 PRIMT函数判断素数 主函数实现相加算法
这个猜想表述为:“任何大于2的偶数都可以表示为两个质数之和。”简单来说,就是所有偶数(除了2本身)都能被看作两个质数相加的结果。例如,6=3+3,10=3+7,14=3+11等。 **质数的概念** 在数学中,质数是大于1且...
C# 请输入一个偶数 您输入的不是偶数,请输入一个偶数 该偶数
任何大于6的偶数都可以分解成两个素数(质数) 这个问题是德国数学家哥德巴赫(C Goldbach,1690-1764)于1742年6月7日在给大数学家欧拉的信中提出的,所以被称作哥德巴赫猜想。同年6月30日,欧拉在回信中认为这个...
描述:本文将深入探讨如何利用C++编程语言实现哥德巴赫猜想的一个特例,即“任意大于5的奇数可以表示为三个素数之和”。我们将通过一个具体的代码示例来解析这一数学问题,并了解如何在程序中判断一个数是否为素数,...
思维挑战8:哥德巴赫猜想 - 现代版本的哥德巴赫的猜想为以下两种: 1.任一大于5的整数都可以写成3个...2.任一大于2的偶数都可以写成2个质数之和。 接下来我们验证一下100以内大于2 的偶数都可以写成2个质数之和。
而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数(通过调用prime来判断素数)。如偶数18可以分解为11+7以及13+5;而偶数80可以分解为:43+37、61+19、67+13、73+7。
这个猜想是由18世纪的普鲁士数学家克里斯蒂安·哥德巴赫提出的,它简单来说就是:“每一个大于2的偶数都可以表示为两个质数之和。”尽管至今为止尚未找到一个统一的证明,但大量的数值检验已经证实了这一猜想对于...
它简单表述为:“每一个大于2的偶数都可以表示为两个质数之和。” 这个猜想至今尚未得到证明,但无数的计算机程序已经验证了其在极大范围内的正确性。本话题我们将探讨如何使用C++编程语言来验证哥德巴赫猜想。 C++...
这是数论中的一个未解决问题,假设为:每一个大于2的偶数都可以表示为两个素数之和。我们可以编写一个程序来验证这个猜想在一定范围内的正确性。这里给出的`Guess`类包含了验证所需的功能: ```cpp class Guess ...
PHP验证歌德巴赫猜想:一个充分大的偶数(大于或等于6)可以分解为两个素数之和。编写程序,将6至50之间全部偶数表示为两个素数之和。
搜寻N以内的素数可转化为搜寻sqrt(N)以内的素数,再转化为搜寻sqrt(sqrt(N))以内的素数,……,从而达到快速搜寻的目的;依次划去2~N内各素数的倍数,最后留下的都是素数。 本程序避开了逆向的递归过程,巧妙转化成...
4. **哥德巴赫猜想**:所有大于2的偶数都可以表示为两个质数之和。虽然目前仍未能证明,但在实际计算中得到了广泛的验证。 #### 四、质数检测算法 为了高效地找出大范围内的质数,研究人员开发了多种算法: 1. **...
哥德巴赫猜想的基本表述是:每一个大于2的偶数都可以表示为两个质数之和。这个猜想至今未被证明,但已引发了大量数学研究。 在解析数论中,为了探究哥德巴赫猜想,数学家们采用了一系列数学工具和技术。论文中提到...
8. 关于填空题中的数学规律,比如2、3、5的倍数特征,需要学生掌握一定的数的规律性,比如2的倍数个位数是偶数,5的倍数个位数是0或5,而3的倍数则是其各个数位上数字之和能被3整除的数。 9. 计算题中的短除法是...
当n为偶数时,可以分解为2加上一个偶数,而这个偶数又可以分解为两个质数的和;当n为奇数时,可以分解为3加上一个偶数,这个偶数同样可以分解为两个质数的和。 三、证明进展 欧拉:欧拉在回信中虽然未能证明哥德巴赫...