題目描述
輸入n個整數,依次輸出每個數的約數的個數
輸入描述:
輸入的第一行為n,即陣列的個數(n<=1000)
接下來的1行包括n個整數,其中每個數的範圍為(1<=num<=1000000000)
當n=0時輸入結束。
輸出描述:
可能有多組輸入資料,對於每組輸入資料,
輸出n行,其中每一行對應上面的乙個數的約數的個數。
示例1
輸入
51 3 4 6 12
輸出12
346思路:這題其實想法很簡單,但是按照平常解法,時間複雜度過大,會執行超時。這裡採用一種優化的寫法,大大降低了時間複雜度。先上**,後面有說明。
#include
using
namespace std;
intcount
(long
long a)
return sum;
}int
main()
}}
說明:因為小於sqrt(n)的數i如果能整除n,則必定還有乙個》sqrt(n)的因數j,使得ij=n。+2是把這兩個因數都算進去了。最後如果ii=n,說明有兩個相同的i是因數,只算乙個。 求乙個數約數的個數
求約數的個數 計算乙個整數的約數個數 輸入格式 輸入乙個整數 輸出格式 輸出一行,為輸入整數的約數的個數 樣例輸入 10 樣例輸出 4ac import math number int raw input count 0 sqrt float math.sqrt number if number s...
計算乙個數中1的個數 0的個數
1.求乙個int數二進位制中1的個數 1 與1 右移 正數 負數都可以 計算的是負數補碼中1的個數 inta cin a int count 0 int n sizeof int 8 位數for int i 0 i a 1 右移一位 cout 2 右移相當於除以2 判斷最低位可用2取餘 右移可用除以...
乙個數的約數的個數 質因數分解
problem description 乙個數,如果他的素數因子只包括2,3,5,7,則稱這個數為萌數,比如,下面這些數就是前20個萌數 1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27。現在給你乙個萌數,請程式設計計算它的約數的個數。比如,4是乙...