1. 程式人生 > >牛客網——約數的個數

牛客網——約數的個數

題目描述

輸入n個整數,依次輸出每個數的約數的個數

輸入描述:

輸入的第一行為N,即陣列的個數(N<=1000)
接下來的1行包括N個整數,其中每個數的範圍為(1<=Num<=1000000000)
當N=0時輸入結束。

輸出描述:

可能有多組輸入資料,對於每組輸入資料,
輸出N行,其中每一行對應上面的一個數的約數的個數。

連結:https://www.nowcoder.com/questionTerminal/04c8a5ea209d41798d23b59f053fa4d6
來源:牛客網

#include <stdio.h>
#include <math.h>
int main(){
    int N;//個數
    int i,j,temp,div;//div為因子個數,temp為當前考察的數值
   
    
    //可能有多組輸入資料
    while(scanf("%d",&N)!=EOF){
        for(i=0;i<N;++i){
            scanf("%d",&temp);
            div=1;//對於大於1的整數至少一個因子
            for(j=2;j*j<=temp;++j){//sqrt可以避免統計重複的因子
                if(temp%j==0)
                    div+=2;//這裡為什麼加2,因為s=a*b,s%a==0,a,b都為因子
            }
            if(temp>1)
                ++div;
             
            printf("%d\n",div);
        }
       
    }
     
    return 0;
}