计算质数因子

质数因子

在这里插入图片描述

描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

数据范围: 1≤n≤2×10^9+14

输入描述:输入一个整数

输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。

示例1

输入:180

输出:2 2 3 3 5

思路

为了减少重复量,只需计算输入数的算术平方根的质数因子,一个正整数最多有一个质因子大于其平方根,且只会是其本身。如:6的算术平方根为根号6

扫描二维码关注公众号,回复: 14328266 查看本文章
import java.util.Scanner;
public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = (int) Math.sqrt(m);//算术平方根函数
        for (int i = 2; i <= m; i++) {
    
    
            if (m % i == 0) {
    
    
                System.out.print(i + " ");
                m = m / i;
                i--;//避免遗漏重复的质数因子
            } else {
    
    
                if (i >= n) {
    
    
                    System.out.print(m + "");
                    break;
                }
            }
        }
    }
}

参考:为什么判断一个数是否为素数时只需开平方根就行了

猜你喜欢

转载自blog.csdn.net/wpc2018/article/details/123967939