您的位置:首页 > 其它

华为——质数因子_

2017-07-04 23:28 260 查看


题目描述

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

详细描述:

函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String

输入描述:
输入一个long型整数

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

示例1

输入

180


输出

2 2 3 3 5


思路:

从2开始不停的判定是否含有2为因子,如果这个是因子,就加入因子集,然后继续从它开始判定。

这样从小到大不停的加,肯定是有序的,所以不需要Collections来sort了。注意continue。

没有它这个因子,那包含它的因子也不会有。就如果2的因子已经加完了,那么累计到4也不会成为它的因子了。因为4已经被前面的2加完了。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
long num = Long.valueOf(str);
ArrayList<Integer>list =new ArrayList<>();

int i =2;
while(i<=num){
if(num%i==0){
num/=i;
list.add(i);
continue;
}
i++;
}
//Collections.sort(list);
for(Integer integer:list)
System.out.print(integer+" ");

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: