约数的个数
約數的個數
題目描述
輸入n個整數,依次輸出每個數的約數的個數輸入描述:
輸入的第一行為N,即數組的個數(N<=1000) 接下來的1行包括N個整數,其中每個數的范圍為(1<=Num<=1000000000) 當N=0時輸入結束。輸出描述:
可能有多組輸入數據,對于每組輸入數據, 輸出N行,其中每一行對應上面的一個數的約數的個數。 示例1輸入
復制 5 1 3 4 6 12輸出
復制 1 2 3 4 6思路:
該問題為求解一個數num的約數個數,那么其實只需要將i在[1, sqrt(num) ]之間遍歷,求解約數個數即可,分兩種情況考慮,如果i2=num, 則ans+1,
如果i2?!= num && num % i ==0, 則ans+2
?
1 #include<iostream> 2 #include<string> 3 #include<cmath> 4 #include<algorithm> 5 6 using namespace std; 7 8 int main() 9 { 10 int n; 11 int num; 12 while(cin >> n) 13 { 14 for(int i = 0; i < n; ++i) 15 { 16 int ans = 0;; 17 cin >> num; 18 int tmp = sqrt(num); 19 20 for(int j = 1; j <= tmp; ++j) 21 { 22 if(num % j == 0) 23 { 24 if(j*j == num) 25 ans += 1; 26 else 27 ans += 2; 28 } 29 } 30 31 cout << ans << endl; 32 } 33 } 34 35 36 return 0; 37 }?
轉載于:https://www.cnblogs.com/FengZeng666/p/11521191.html
總結
- 上一篇: C++使用stringstream分割字
- 下一篇: 质因数的个数 (分解质因数)