約數的個數

題目描述

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

輸入描述:

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

輸出描述:

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

輸入

複製
5
1 3 4 6 12

輸出

複製
1
2
3
4
6

代碼:
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int func(int num)
{
    if (num==0)
    {
        return 0;
    }
    int r = (int)sqrt(1.0 * num);
    int sum = 0;
    if (r * r == num)
    {
        sum++;
        r--;
    }
    for (int i = 1; i <= r; i++)
        if (num % i == 0)
        {
            sum += 2;
        }
    cout << sum << endl;
    return 0;

    
}
int main()
{
    int n;
    cin >> n;
    vector<int> num;
    num.resize(n);
    for (int i = 0; i < n; i++)
    {
        cin >> num[i];
    }for (int i = 0; i < n;i++)
    {
        func(num[i]);
    }
     

    return 0;
}
View Code
相關文章
相關標籤/搜索