算n因子的個數

2021-05-23 07:16:12 字數 554 閱讀 4748

這種題目以前就曾經做過,但是這次在做又忘了怎麼寫,在這裡做個總結,任意乙個數n都可以表示成p1^n1*p2^n2*p3^n3..........(p1,p2....是n的素因子,n1,n2是p1,p2的個數),n因子的個數就num=(n1+1)*(n2+1)*........

所以我們在算因子個數的時候,就要先篩素數,篩素數的方法有很多種,效率也都不一樣,用不同的方面也影響著後面算n1,n2....同樣也影響後來算num的效率

這裡有一種的演算法。。。

void make_prime()}}

int solve(int n)

ans*=t+1;

}return ans;

}最後推薦兩道題

poj2992 N 素因子個數,因子個數

題目大意 求組合數cnk的因子個數 思路 要求因子個數,由於因子可由素因子組合而成,所以先求得素因子個數 n 某素因子p的指數公式 p n n p 1 n p 2 n p 3 n p n 其中最後乙個式子中n是使得p n小於等於 的最大數 因子個數公式 cnt p1 1 p2 1 p3 1 pn 1...

求n個數 1 n 的質因子

求n個數 1 n 的質因子,我用到了素數篩選法的思想,例如找到素數2,2是2,4,6,8,10 的質因子,3是3,6,9,12 的質因子,然後找到素數5,若是求乙個數n的質因子,請參考 include includeint a 10001 20 b 10001 b i 表示第i個數的質因子個數,a ...

N的因子個數 HDU1492

hdu 1492 題意 給定乙個數求其因子數 該因子必須要以2 3 5 7作為基礎因子 思路 數論基礎題,參考部落格 在此表示感謝!求取冪次,然後每項加1互乘,以12為例,其可以分解為2 2 3,其中2 2與3 1,在12的各項因子中可以由2的0 1 2次方再乘上3的0 1次方得到,所以有2 3 6...