約數的個數

2021-10-22 00:25:45 字數 1321 閱讀 3928

題目描述

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