機試題 約數的個數

2021-09-26 06:57:45 字數 729 閱讀 8688

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

輸入的第一行為n,即陣列的個數(n<=1000)

接下來的1行包括n個整數,其中每個數的範圍為(1<=num<=1000000000)

當n=0時輸入結束。

可能有多組輸入資料,對於每組輸入資料,

輸出n行,其中每一行對應上面的乙個數的約數的個數。

示例1

5

1 3 4 6 12

123

46

求乙個數的約數,也就是求它的因子數量,那麼只需要從1開始往後找因子,直到該數的平方根,因為大於平方根的因數必有乙個對應的因數小於平方根,能夠在前面被找到,因此只需要在範圍1~sqrt(x)尋找因數,找到乙個結果就加2,表明這是一對因數。如果平方根也是因數的話就只需要加1。

#include #include using namespace std;

int main()

for(int i = 0; i < n; i++)

int s = sqrt(a[i]);

for(int j = 1; j <= s; j++)}}

for(int i = 0; i < n; i++)

cout << b[i] << endl;

return 0;

}

約數的個數

輸入n個整數,依次輸出每個數的約數的個數。輸入的第一行為n,即陣列的個數 n 1000 接下來的1行包括n個整數,其中每個數的範圍為 1 num 1000000000 當n 0時輸入結束。可能有多組輸入資料,對於每組輸入資料,輸出n行,其中每一行對應上面的乙個數的約數的個數。6 1 4 6 8 10...

約數的個數

題目描述 輸入n個整數,依次輸出每個數的約數的個數。輸入描述 輸入的第一行為n,即陣列的個數 n 1000 接下來的1行包括n個整數,其中每個數的範圍為 1 num 1000000000 當n 0時輸入結束。輸出描述 可能有多組輸入資料,對於每組輸入資料,輸出n行,其中每一行對應上面的乙個數的約數的...

約數的個數

對於約數個數的求法,開始我的 是逐個列舉取餘,這當然是乙個很簡單易懂的方法。但是整個程式的時間複雜度達到o n m 對於超級大的測試樣例來說,這顯然不可取。cin n個整數,cout 每乙個整數的約數個數 include include using namespace std 求約數個數 int f...