約數之和 質因數分解 等比數列求和

2021-09-25 17:26:09 字數 878 閱讀 7960

題目:

假設現在有兩個自然數a和b,s是abab的所有約數之和。

請你求出s mod 9901的值是多少。

輸入格式

在一行中輸入用空格隔開的兩個整數a和b。

輸出格式

輸出乙個整數,代表s mod 9901的值。

資料範圍

0≤a,b≤5×1070≤a,b≤5×107

輸入樣例:

2 3
輸出樣例:

15
注意: a和b不會同時為0。

解題報告:由於a,b,都非常地大,咱們不可能直接去求解a^b,所以應該使用一下中學階段學的冪次的性質,a=(a*b*c)

那麼a^b=(a*b*c)^b=a^b*b^b*c^b。然後咱們分別去求解每個素因子的約數和,這裡涉及了一下基性函式,每個素因子的求和的乘積=所有因子的加和。在求解每個素因子的和的時候,使用了一下等比數列求和,單獨寫了乙個遞迴函式去求解的。

ac**:

#includeusing namespace std;

typedef long long ll;

const int mod=9901;

int ksc(int a,int b)

return res;

}int ksm(int a,int b)

return res;

}int sum(int p,int k)

int main()

if(s>0)

res=(res*sum(i,s*b))%mod;

} if(a==0)

res=0;

cout<}

poj1845 質因數分解 等比數列求和

題意 求a b約數之和。分析 首先可以講a分解質因數 a p1 a1 p2 a2 p3 a3 pn an 則a b p1 a1 b p2 a2 b pn an b a b的所有約數之和sum 1 p1 p1 2 p1 a1 b 1 p2 p2 2 p2 a2 b 1 pn pn 2 pn an b ...

質因數分解(C )(求最小質因數反求最大質因數)

p1075 質因數分解 題目描述 已知正整數nn是兩個不同的質數的乘積,試求出兩者中較大的那個質數。輸入格式 乙個正整數nn。輸出格式 乙個正整數pp,即較大的那個質數。輸入輸出樣例 輸入 21 輸出 7 說明 提示 n 2 10 9 noip 2012 普及組 第一題 直接找最大質因數會超時,所以...

面試題 求質因數分解

題目 求乙個數的質因數分解,比如輸入90,輸出2 3 3 5。解體思路 要求乙個數n的質因數分解,首先求出n以內的所有質數,將其放入prime陣列內,然後再讓prime i 去除n,如果能夠整除,那麼這個prime i 就是n的質因數,否則不是。求prime的方法是篩法求素數。實現 include ...