輸入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...