- 题目:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )最后一个数后面也要有空格
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格
- 示例:
输入
180
输出
2 2 3 3 5
- 思路:将给定数num用i去除(i从2开始),第一个使余数为0的i则为num的质数因子,再将num/i的值赋给num,直到num为1(循环结束条件)。
- 代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
StringBuilder result = new StringBuilder();
while(sc.hasNextLong()){
long num = sc.nextLong();
while(num!=1){
for(int i=2;i<=num;i++){
//从2开始,找到第一个能整除num的数,再将商作为新的num
if(num%i==0){
result.append(i+" ");
num = num/i;
break;
}
}
}
System.out.println(result);
}
sc.close();
}
}