閱讀877 返回首頁    go 阿裏雲 go 技術社區[雲棲]


九度題目1087:約數的個數

題目1087:約數的個數

時間限製:1 秒
內存限製:32 兆
特殊判題:否
提交:5459
解決:1642
題目描述:
輸入n個整數,依次輸出每個數的約數的個數

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


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

樣例輸入:
5
1 3 4 6 12
樣例輸出:
1
2
3
4
6
來源:
2011年清華大學計算機研究生機試真題

 

技巧:分半求約數
AC代碼:

#include<stdio.h>
#include<string.h>
int a[1500];
int Fun(int n)
{
     int i,sum=0;
     if(n==1)
     return 1;
     for(i=1;i*i<=n;i++)
     {
        if(n%i==0)
        {
           if(n/i!=i)
           {
              sum+=2;
           }
           else
           {
               sum++;
           }
        }
     }
     return sum;
}
int main()
{
    int i,j,n,m;
    while(scanf("%d",&n)!=EOF)
    {
       for(i=0;i<n;i++)
       scanf("%d",&a[i]);
       for(i=0;i<n;i++)
       {
          printf("%d\n",Fun(a[i]));
       }
    }
    return 0;
}

最後更新:2017-04-03 08:26:11

  上一篇:go 九度題目1449:確定比賽名次
  下一篇:go 大型分布式係統架構