qintangtao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

/**
 * 时间:2012年11月15日 18:54:54
 * 内容:一道面试题: 把一个数分解成最小乘积
 *             请输入要分解的数字:90
 *                90=2*3*3*5
 *            请输入要分解的数字:123
 *                 123=3*41
 */
private static void resolve() {
    int exit = 1;
    while(exit==1){
        try {
        System.out.print("请输入要分解的数字:");
        Scanner sc = new Scanner(System.in);
        int hei = sc.nextInt();
        if(hei==0)
            break;
        int temp = hei;
        boolean flag = true;
        boolean t = false;
        StringBuilder sb = new StringBuilder();
    
        while(flag){
            for(int i=3; i<=temp; i+=2){
                if(i==3 && temp%2==0){
                    sb.append("2*");
                    temp=temp/2;
                    break;
                }
                if(temp%i==0){
                    sb.append(i+"*");
                    temp = temp/i;
                    if(temp==1){
                        flag = false;
                    }
                    break;
                }
            }
        }
        String result = sb.toString();
        result = result.substring(0, result.length()-1);
        System.out.println(hei+"="+ result);
        } catch (Exception e) {
            System.err.println("请输入数字..");
        }
    }
    System.out.println("退出..............");
}

posted on 2012-11-15 18:56  qintangtao  阅读(385)  评论(0编辑  收藏  举报