分解質因數(模板)


給定n個正整數ai,將每個數分解質因數,並按照質因數從小到大的順序輸出每個質因數的底數和指數。

輸入格式

第一行包含整數n。

接下來n行,每行包含一個正整數aiai。

輸出格式

對於每個正整數aiai,按照從小到大的順序輸出其分解質因數后,每個質因數的底數和指數,每個底數和指數占一行。

每個正整數的質因數全部輸出完畢后,輸出一個空行。

數據范圍

1n1001≤n≤100,
1ai21091≤ai≤2∗109

輸入樣例:

2
6
8

輸出樣例:

2 1
3 1

2 3

   試除法求質因子

    時間復雜度O(sqrt(n))

    n中最多只包含一個大於sqrt(n)的質因子

 代碼:

       static void divide(int n){
            for(int i=2;i<=n/i;i++){//n中最多只包含一個大於sqrt(n)的質因子,所以只枚舉到sqrt(n)即可,大於的那個單獨處理
                if(n%i==0){
                    int s=0;
                    while(n%i==0){
                    n/=i;
                    s++;
                }
                System.out.println(i+" "+s);
                }
            }
            if(n>1) System.out.println(n+" 1");    
            System.out.println();
       }

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM