栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1845 Sumdiv

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1845 Sumdiv

#include<iostream>using namespace std;const int size=10000;const int mod=9901;__int64 sum(__int64 p,__int64 n);  __int64 power(__int64 p,__int64 n);  int main(void){int A,B;int p[size];int n[size];while(cin>>A>>B){int i,k=0;  for(i=2;i*i<=A;)  {if(A%i==0){p[k]=i;n[k]=0;while(!(A%i)){n[k]++;A/=i;}k++;}if(i==2)  //奇偶法i++;elsei+=2;}if(A!=1){p[k]=A;n[k++]=1;}int ans=1;  //约数和for(i=0;i<k;i++)ans=(ans*(sum(p[i],n[i]*B)%mod))%mod;  //n[i]*B可能会超过int,因此用__int64cout<<ans<<endl;}return 0;}__int64 sum(__int64 p,__int64 n) {   if(n==0)    return 1;if(n%2)  //n为奇数,return (sum(p,n/2)*(1+power(p,n/2+1)))%mod;else     //n为偶数return (sum(p,n/2-1)*(1+power(p,n/2+1))+power(p,n/2))%mod;}__int64 power(__int64 p,__int64 n)  {__int64 sq=1;while(n>0){        if(n%2) sq=(sq*p)%mod;        n/=2;        p=p*p%mod;    }return sq;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号