zoukankan      html  css  js  c++  java
  • Java 分解质因数

    /**
     * PrimeFactor.java
     * @author:王超
     * 2017年3月13日
     * wangChaoPA实习工作练习.com.分解质因数.PrimeFactor
     * Copyright (c) 2007, 2016 Infopower corporation All Rights Reserved.
     */
    package wangChaoPA实习工作练习.com.分解质因数;

    import java.util.Scanner;

    public class PrimeFactor
    {
        private static Scanner input = new Scanner(System.in);

        /**
         * <p>
         * 描述:递归函数 分解数为质因数的乘积
         * </p>
         *
         * @param input
         *            要分解的数
         */
        public static void diGui(int input)
        {
            if (input <= 1)
            {
                System.out.print("无解");
            }
            else if (input == 2)
            {
                System.out.print(input);
            }
            else
            {
                for (int j = 2; j < input; j++)
                {
                    // input不是质数且j是质数
                    if (input % j == 0 && isPrimeNum(j))
                    {
                        // 分解的质因数
                        System.out.print(j + "*");
                        // 从新赋值
                        input = input / j;
                        // 判断赋值后的input是否为质数
                        if (isPrimeNum(input))
                        {
                            System.out.println(input);
                            break;
                        }
                        else
                        {

                        }
                        // 调用递归函数
                        diGui(input);
                        break;
                    }
                }
            }
        }

        /**
         * <p>
         * 描述:判断是否为质数
         * </p>
         *
         * @param n
         *            要判断的数字
         * @return
         */
        public static boolean isPrimeNum(int n)
        {
            // 默认所有的n都为质数
            boolean result = true;
            for (int j = 2; j < n; j++)
            {
                if (n % j == 0)
                {
                    // 不是质数
                    result = false;
                    break;
                }
            }
            return result;
        }

        /**
         * 将一个正整数分解为质因数 例如9 = 3*3
         *
         */
        public static void main(String[] args)
        {
            int in = input.nextInt();
            System.out.print("分解的质因数为:" + in + "=");
            diGui(in);
            input.close();
        }
    }

  • 相关阅读:
    Google androd性能优化经典
    java Linkedhashmap源码分析
    android smali代码注入 实战一
    开源库ActiveAndroid + gson使用
    android开源项目:图片下载缓存库picasso
    第四次博客作业-结对项目
    第九次作业
    第八次作业
    软件工程第三次作业——关于软件质量保障初探
    第七次作业
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/6551189.html
Copyright © 2011-2022 走看看