题解 | 质数因子

质数因子

https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static List<Long> getPrimeFactors(long n){
        List<Long> factors=new ArrayList<>();
        if(n<2){
            return factors;// 小于2的数没有质因子
        }
        for(long i=2;i<=Math.sqrt(n);i++){
            while(n % i ==0){
                factors.add(i);
                n/=i;
            }
        }
        if(n>1){
            factors.add(n);// 剩下的n如果n大于1,则n是质因子
        }
            return factors;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            long n=in.nextLong();
            List<Long> factorsList=getPrimeFactors(n);
            for(Long factors:factorsList){
                System.out.print(factors + " ");
            }
            
        }
        in.close();
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务