分解質因數(模板)

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

輸入格式

第一行包含整數n。spa

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

輸出格式

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

每一個正整數的質因數所有輸出完畢後,輸出一個空行。blog

數據範圍

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

輸入樣例:

2
6
8

輸出樣例:

2 1
3 1

2 3

   試除法求質因子

    時間複雜度O(sqrt(n))數據

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

 代碼:di

       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();
       }
相關文章
相關標籤/搜索