poj解題報告 1845

2021-06-27 04:51:21 字數 924 閱讀 1328

題意求a^b的所有約數(即因子)之和,並對其取模 9901再輸出。用到下面三個數學公式和定理

整數的唯一分解定理:

任意正整數都有且只有一種方式寫出其素因子的乘積表示式。

a=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)   其中pi均為素數

約數和公式:

對於已經分解的整數a=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)

有a的所有因子之和為

s = (1+p1+p1^2+p1^3+...p1^k1) * (1+p2+p2^2+p2^3+….p2^k2) * (1+p3+ p3^3+…+ p3^k3) * .... * (1+pn+pn^2+pn^3+...pn^kn)

同餘模公式:

(a+b)%m=(a%m+b%m)%m

(a*b)%m=(a%m*b%m)%m

**如下

#include

#include

#define size 10000

#define mod 9901

__int64 sum(__int64 p,__int64 n);

__int64 power(__int64 p,__int64 n);

__int64 sum(__int64 p,__int64 n)

__int64 power(__int64 p,__int64 n)

return sq;

}void main()

k++;

}if(i==2)

i++;

else

i+=2;

}if(a!=1)

ans=1;

for(i=0;ians=(ans*(sum(p[i],n[i]*b)%mod))%mod;

printf("%i64d\n",ans);}}

Poj1845 Sumdiv 解題報告

真沒想到!其實我們可以先將 a b 分解成質因數的 因為 a b 的因數肯定是 a b 的質因數在一定的條件下相乘而成的 然後組合一下 h ovny 走開!別誤導別人!來一波公式 所有因數的和 pi 讀作pi,是 pi 的大寫,表示累乘 sigma 讀作sigma,是 sigma 的大寫,表示累加 ...

poj解題報告 1328

不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...

poj解題報告 2586

這題我是用的貪心演算法,其實不用也可以,列舉也能解決,因為情況不多。因為是每連續5個月必有虧損,而一年只有1 5,2 6,3 7,4 8 8 12共8種情況。現在設盈餘為s,虧損為d,可列出以下幾種情況。ssssdssssdss 4ssssddsssddss 3s 2d ssdddssdddss 2...