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

2021-07-23 04:04:07 字數 864 閱讀 6006

題意:求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)].

之後就是用二分的方法求解了。

下面是**(其實getprime()函式是可以不要的)^_^

#include

#include

#include

#include

using namespace std;

typedef long long ll;

const int maxn=10010;

const int mod=9901;

int prime[maxn];

void getprime()

}}ll pow(ll x,ll y)

return ret;

}ll zhiyinshu[maxn][2];

int cnt;

void fenjie(ll x)

cnt++;}}

if(x!=1)

}ll sum(ll x,ll y)else return ((1+pow(x,(y/

2+1)))%mod

*sum(x,y/2-1)%mod+pow(x,y/2)%mod)%mod;

}int main()

printf("%lld",ans);

return

0;}

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

題目 假設現在有兩個自然數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...

質因數分解

題目16 將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5。程式分析 對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完 成 1 如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。2 如果n k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新...

質因數分解

短除法 求乙個數分解質因數,要從最小的質數除起,一直除到結果為質數為止。分解質因數的算式的叫短除法 和除法的性質差不多,還可以用來求多個個數的公因式 求 最大公因數的一種方法,也可用來求 最小公倍數。求幾個數最大公因數 的方法,開始時用觀察比較的方法,即 先把每個數的因數找出來,然後再找出公因數,最...