/*
* 目标:将一个偶数,分解成质数之和。
*/
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;
}
}
分享到:
相关推荐
正偶数分解两个素数之和
任意输入一个偶数n(n>4),请将它分解为两个素数之和。
将大于四的偶数分解成2个素数相加 PRIMT函数判断素数 主函数实现相加算法
验证哥德巴赫猜想,任意一个大于等于6的偶数都可以分解为两个素数之和,VB6.0源代码编写
验证哥德巴赫猜想:一个大偶数可以分解为两个素数之和。分解500~1000之间的大偶数。
C# 请输入一个偶数 您输入的不是偶数,请输入一个偶数 该偶数
任何大于6的偶数都可以分解成两个素数(质数) 这个问题是德国数学家哥德巴赫(C Goldbach,1690-1764)于1742年6月7日在给大数学家欧拉的信中提出的,所以被称作哥德巴赫猜想。同年6月30日,欧拉在回信中认为这个...
思维挑战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。
偶数表为两个素数之和时表法数的计算法则,庄严,庄宏飞,本文由素数模根数型理论把全体素数表示为代数条件通式,在全体偶数和全体素数间建立了各自对应的两个素数相加式;本文利用中心对
包含以下三道例题:(C++代码求解) 1.求出指定范围内的所有...3.哥德巴赫猜想之一是,任何一个不小于6的偶数都可以表示为两个素数之和,例如,6=3+3,8=3+5,10=3+7等,试建立一个Guess类,验证6~100之间的所有偶数。
PHP验证歌德巴赫猜想:一个充分大的偶数(大于或等于6)可以分解为两个素数之和。编写程序,将6至50之间全部偶数表示为两个素数之和。
搜寻N以内的素数可转化为搜寻sqrt(N)以内的素数,再转化为搜寻sqrt(sqrt(N))以内的素数,……,从而达到快速搜寻的目的;依次划去2~N内各素数的倍数,最后留下的都是素数。 本程序避开了逆向的递归过程,巧妙转化成...
而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数(通过调用prime来判断素数)。如偶数18可以分解为11+7以及13+5;而偶数80可以分解为:43+37、61+19、67+13、73+7。...
用C#实现验证哥德巴赫猜想,程序比较简洁,但是基本功能都实现了。
本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。 输入格式: 输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。 输出格式: 在一行中按照格式“N = p + q”输出N的素数分解,...
1.将一个很大(最大为29位整数79228162514264337593543950335,即2^96-1)分解成最小的质因数并以指数结果显示,分解速度视情况而定,如果这个数的因数多,则较快,反之则慢. 2.将一个整数闭区间内的所有整数分解成最小的...
关于在某一个区间哥德巴赫猜想验证是否正确的代码精简、以及时间效率的挺高!
对哥德巴赫做出验证,用C++编写,很好用的哦
哥德巴赫猜想是证明:任意大的一个偶数都可以表示成为两个素数的和!