首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

将一个双数分解成质数之和

2012-10-09 
将一个偶数分解成质数之和/* * 目标:将一个偶数,分解成质数之和。 */public class DisintegrateEvenNumber

将一个偶数分解成质数之和

/* * 目标:将一个偶数,分解成质数之和。 */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;    }}

热点排行