华为——质数因子_

来源:互联网 发布:托福听力软件推荐 编辑:程序博客网 时间:2024/06/05 09:35

题目描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如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+" ");}}


原创粉丝点击