质数因子
描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
数据范围: 1≤n≤2×10^9+14
输入描述:输入一个整数
输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1
输入:180
输出:2 2 3 3 5
思路
为了减少重复量,只需计算输入数的算术平方根的质数因子,一个正整数最多有一个质因子大于其平方根,且只会是其本身。如:6的算术平方根为根号6
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;
}
}
}
}
}