zoukankan      html  css  js  c++  java
  • 华为机试测试- 质数因子

    根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积。

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            Long n=scanner.nextLong();
            System.out.println(convert(n));
            scanner.close();
        } 
        public static String convert(Long n)
        {
            List<Long> list=new ArrayList<Long>();
            Long temp=n;
            for(long i=2;i<=temp/2;i++)
            {
                if(isPrimaryNum(i))
                {
                    while(n%i==0)
                    {
                        list.add(i);
                        n=n/i;
                    }
                    if(n==1)
                        break;
                }
            }
            String reStr="";
            for(int i=0;i<list.size();i++)
                reStr+=list.get(i)+" ";
            return reStr.trim();
        }
        
        public static boolean isPrimaryNum(long n)
        {
            if(n<=1)
                return false;
            if(n==2||n==3)
                return true;
            double sq=Math.sqrt(n);
            if(n%2==0)
                return false;
            for(int i=3;i<=sq;i+=2)
            {
                if(n%i==0)
                    return false;
            }
            return true;
        }
    }
  • 相关阅读:
    阅读代码
    openSips
    rc.local 问题
    MyBatis框架使用(一)
    【数据结构杂谈】
    【AGC052A】
    【杜教筛学习笔记】
    CF618F Double Knapsack
    [NOI2016] 循环之美
    【BZOJ 4668 冷战】
  • 原文地址:https://www.cnblogs.com/maydow/p/4784803.html
Copyright © 2011-2022 走看看