使用java求任意數字的質數因子

題目描述

功能:輸入一個正整數,按照從小到大的順序輸出它的全部質數的因子(如180的質數因子爲2 2 3 3 5 )html

最後一個數後面也要有空格java

詳細描述:
函數接口說明:函數

public String getResult(long ulDataInput)優化

輸入參數:spa

long ulDataInput:輸入的正整數code

返回值:htm

String接口

輸入描述:

輸入一個long型整數get

輸出描述:

按照從小到大的順序輸出它的全部質數的因子,以空格隔開。最後一個數後面也要有空格。class

輸入

180

輸出

2 2 3 3 5

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Long aLong = scanner.nextLong();
        
        int a = (int) Math.sqrt(aLong) + 1;
        int i = 2;
        while (aLong != 1 && i <= a) {
            if (aLong % i == 0) {
                aLong /= i;
                System.out.print(i + " ");
                i = 2;
            } else {// 單純暴力,能夠優化爲i只包含 '奇數(不含1)' 和'2',我懶
                i++;
            }
        }
        if (i > a) {// 在2-->sqrt(n)中,無因數,輸出自身
            System.out.print(aLong + " ");
        }
        scanner.close();
    }
}
相關文章
相關標籤/搜索