poj 1845 Sumdiv (算数基本定理+逆元)
生活随笔
收集整理的這篇文章主要介紹了
poj 1845 Sumdiv (算数基本定理+逆元)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
輸入a和b,求a^b的所有因子之和。
?
#include <iostream> #define ll long longusing namespace std;const int mod=9901;ll a,b;int quick(ll a,ll b,ll m) {ll res,t;res=1;t=a%m;while(b){if(b&1){res=res*t%m;}t=t*t%m;b>>=1;}return res; }int main() {ios::sync_with_stdio(false);cin.tie(0);cin>>a>>b;if(b==0||a<=1) {cout<<"1"<<endl;return 0;}ll ans=1;int s;for(int i=2;i*i<=a;i++){s=0;while(a%i==0){a/=i;s++;}if((i-1)%mod==0)ans=ans*(quick(i,s*b+1,mod*(i-1))-1)/(i-1)%mod;else ans=ans*(quick(i,s*b+1,mod)-1)*quick(i-1,mod-2,mod)%mod;}if(a>1){if((a-1)%mod==0)ans=ans*(quick(a,b+1,mod*(a-1))-1)/(a-1)%mod;else ans=ans*(quick(a,b+1,mod)-1)*quick(a-1,mod-2,mod)%mod;}cout<<(ans+mod)%mod<<endl;return 0; }?
轉載于:https://www.cnblogs.com/Fy1999/p/9700917.html
總結
以上是生活随笔為你收集整理的poj 1845 Sumdiv (算数基本定理+逆元)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Usage of git
- 下一篇: 视频剪辑软件调研分析