題目描述
功能:輸入一個正整數,按照從小到大的順序輸出它的全部質數的因子(如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(); } }