题目
输入一个正整数n,输出该整数的所有质因子,并按从小到大顺序排列!,例:
- 输入:40
- 输出:40=2*2*2*5
1、思路分析
首先,观察这种输出结果40=2*2*2*5
,很容易想到就是 “短除法”,虽然你可能忘了什么叫短除法,但是你肯定知道怎么计算,也就是从最小质数2开始相除,一直除到结果为质数为止,比如40刚好能被2整除,2是一个质数,那么2就是40的一个质因子。
其次,40/2=20
,20又能被2整除,又得重复上述的步骤,是不是很像递归?没错,个人认为递归很容易实现该逻辑!
最后,要求对质因子进行排列,是否可以利用有序可重复集合List
的相关特性?
2、初步实现
2.1、编写代码
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int number = sc.nextInt();
List<Integer> list = new ArrayList<>();
Main.getFactor(list, number);
Collections.sort(list);
System