題目描述
輸入n個整數,依次輸出每個數的約數的個數
輸入描述:
輸入的第一行為n,即陣列的個數(n<=1000)
接下來的1行包括n個整數,其中每個數的範圍為(1<=num<=1000000000)
輸出描述:
可能有多組輸入資料,對於每組輸入資料,
輸出n行,其中每一行對應上面的乙個數的約數的個數。
示例1輸入複製5
1 3 4 6 12
輸出複製12
346假設乙個數x的約數為n,且x的質因子為pi,各個質因子對應的冪次為ei,則n=(e1+1)(e2+1)…
所以先將x進行質因子分解,得到每個質因子相應的冪次後,再累乘即可求得約數n。
#include
#include
#include
#define maxsize 100000
using
namespace std;
typedef
struct
prime_info;
void
init_primes()
;vector<
int>primes,data;
vectorinfos;
bool primetable[maxsize]
;int n,res,tmp;
prime_info cur_info;
intmain()
; infos.
push_back
(cur_info)
; first=
false;}
else
cur/
=primes[i];}
}if(cur!=1)
; infos.
push_back
(cur_info);}
for(
int i=
0;isize()
;i++
)res*
=infos[i]
.cnt+1;
data.
push_back
(res);}
for(
int i=
0;isize()
;i++
) cout<}return0;
}void
init_primes()
primes.
push_back
(i);}}
}
約數的個數
輸入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...