题解 | #质数因子#

质数因子

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

import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLong()) { // 注意 while 处理多个 case
            long num = in.nextLong();
            List<String> resultList = new ArrayList<>();

            for(int i = 2; i <= Math.sqrt(num); i++) {
                while(num % i == 0) {
                   resultList.add(String.valueOf(i));
                   num /= i;
                }
            }

            if (num > 1) {
                resultList.add(String.valueOf(num));
            }

            System.out.println(String.join(" ", resultList));
        }
    }
}
  1. 2是质因数,1既不是质数也不是合数。
  2. 所有的合数都是质因数的乘积。主要能被质因数整除,就要一直除下去。
  3. 最小的质因数不会超过该数的平方根。函数: Math.sqrt()
  4. 所有其它质因数都不能整数就是最后一个质因数。
全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务