zoukankan      html  css  js  c++  java
  • 求质因数

    此博客链接:

    求质因数

    题目

    给定一个输入,输出这个数的所有质因数的乘积形式。例如45=3*3*5

    题解

    这题分为两点,一点是找质因数,另外一点说处理输出结果。

    找质因数时,判断2到这个数开平方根中是否有整除的数,如果有的话则不是质数,如果没有的话,则是质数。

    输出结果时,可以把全部满足条件的质数使用字符串拼接,这里需要注意,每个质数之间只有一个*号,但是我在拼接时,会多出一个*,需要对多出来的*做特殊处理,如果选*在数字前,需要把最后结果的第一个*去掉,如果选*在数字后,则需要把最后结果的最后一个*去掉,我这里是选择*在最前面,使用substring分割最后的结果,把第一个*去掉。

    注意:

    本题需要注意的是,一个数可能有重复的质因数,我是使用了while循环找出相同的质因数。

    代码

    import java.util.Scanner;
    
    public class leetcode {
        // private static final String FileUtils = null;
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int c = n;
            String ans = "";
            for (int i = 2; i <= n; i++) {
                if (prime(i) == true) {
                    while (n % i == 0) {
                        ans += "*" + i;
                        n = n / i;
                    }
                }
            }
            System.out.println(c + "=" + ans.substring(1, ans.length()));
        }
    
        public static boolean prime(int m) {
            for (int i = 2; i < Math.sqrt(m); i++) {
                if (Math.sqrt(m) % i == 0) {
                    return false;
                }
            }
            return true;
        }
    }

    结果

    全部测试用例通过

    出来混总是要还的
  • 相关阅读:
    矩阵快速幂 HDU3483
    欧拉函数 求小于某个数并与其互质的数的个数
    扩展欧几里德算法求逆元3
    拓展欧几里德算法求逆元2
    【20140113-2】MyEclipse生成javadoc时出错:编码GBK的不可映射字符
    【131202】SQL
    【20140113】package 与 import
    系统架构等级
    ora-01658 :无法为表空间USERS 中的段创建INITIAL区
    WMSYS.WM_CONCAT 函數的用法
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/14861927.html
Copyright © 2011-2022 走看看