质数因子

题目描述

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

最后一个数后面也要有空格
 

输入描述:

输入一个long型整数

输出描述:

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

示例1

输入

180

输出

2 2 3 3 5

能整除a的数一定小于a/2,减少点复杂度,剩下的都是暴力破解。
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        long a=sc.nextLong();
        long b;
        if(a%2==0){
            b=a/2;
        }else{
            b=a/2+1;
        }
        for(int i=2;i<=b;i++){
            if(a%i==0){
                System.out.print(i+" ");
                a=a / i;
                i=1;
            }
        }
        if(a!=1){
            System.out.print(a+" ");
        }
    }
}

 

posted @ 2020-08-17 10:57  索爷  阅读(194)  评论(0编辑  收藏  举报