2691. Sumdiv

★★★   输入文件:sumdiv.in   输出文件:sumdiv.out   简单对比
时间限制:1 s   内存限制:12 MB

【题目描述】

考虑两个自然数A和B.定义S是A ^ B的所有自然因数的总和。确定S模9901的值。

【输入格式】

唯一的行包含由空格分隔的两个自然数A和B(0 <= A,B <= 50000000)。

【输出格式】

输出一行,即S模9901。

【样例输入】

2 3

【样例输出】

15

样例解释:2 ^ 3 = 8。 8的自然因数是:1,2,4,8。他们的和是15。 15模9901是15(应该输出)。

【来源】

POJ1845

/*
题意:求A^B 所有约数(因子)之和mod 9901。 应用质因数分解+约数和公式+逆元+等比数列求和公式
A=p1^k1*p2^k2*...pn^kn
A^B=p1^(k1*B)*p2^(k2*B)...pn^(kn*B)
约数和公式:Sum=(1+p1+p1^2+...+p1^k1)*(1+p2+p2^2+...+p2^k2)*(......pk^kn)
Sum(A^B)=(1+p1+p1^2+...+p1^k1*B)*(1+p2+p2^2+...+p2^k2*B)*(......pk^kn*B) mod 9901
对于每一个 (1+p1+p1^2+...+p1^k1*B),根据等比数列求和公式为 [1-p1^(1+k1*B)]/(1-p1) mod 9901
根据逆元公式:a/b mod m=(a mod mb )/b
原式= [p1^(k1*B+1)-1] mod [9901*(p1-1)] / (p1-1)
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define ll long long
#define mod 9901
#define N 10005
int p[N],cnt;
ll A,B;
bool prime[N];
void Isprime(){
for(int i=;i<N;i++)
if(!prime[i]){
p[++cnt]=i;
for(int j=i+i;j<N;j+=i)
prime[j]=;
}
}
ll slow_mul(ll a,ll b,ll m){
ll result=;a%=m;
while(b){
if(b&){result=(result+a)%m;}
b>>=;
a=(a+a)%m;
}
return result;
}
ll fast_pow(ll a,ll b,ll m){
ll result=;a%=m;
while(b){
if(b&)result=slow_mul(result,a,m);
b>>=;
a=slow_mul(a,a,m);
}
return result;
}
int main(){
freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
//freopen("cola.txt","r",stdin);
scanf("%lld%lld",&A,&B);
if(A==){printf("");return ;}
Isprime();
ll ans=;
for(int i=;p[i]*p[i]<=A;i++){//质因数分解
if(A%p[i]==){
int num=;
while(A%p[i]==)num++,A/=p[i];
ll M=mod*(p[i]-);
ans*=(fast_pow(p[i],num*B+,M)-)/(p[i]-);
ans%=mod;
}
}
if(A>){
ll M=(A-)*mod;
ans*=(fast_pow(A,B+,M)-)/(A-);
ans%=mod;
}
printf("%lld",ans);
}

cogs 2691. Sumdiv的更多相关文章

  1. 【COGS 254】【POI 2001】交通网络图

    http://www.cogs.top/cogs/problem/problem.php?pid=254 dist[i]表示能最早到达i点的时间.这样就可以用最短路模型来转移了. #include&l ...

  2. POJ 1845 Sumdiv

    快速幂+等比数列求和.... Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 12599 Accepted: 305 ...

  3. 【COGS】894. 追查坏牛奶

    http://cojs.tk/cogs/problem/problem.php?pid=894 题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割.(n<=32, m<=1 ...

  4. 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)

    http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...

  5. 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)

    http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...

  6. 【COGS & USACO】896. 圈奶牛(凸包)

    http://cojs.tk/cogs/problem/problem.php?pid=896 我的计算几何入门题... 看了看白书的计算几何部分,,恩好嘛.. 乃们都用向量!!!! 干嘛非要将2个点 ...

  7. 【COGS】714. USACO 1.3.2混合牛奶(贪心+水题)

    http://cojs.tk/cogs/problem/problem.php?pid=714 在hzwer的刷题记录上,默默地先跳过2题T_T...求凸包和期望的..T_T那是个啥..得好好学习 看 ...

  8. Sumdiv(快速幂+约数和)

    Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16244 Accepted: 4044 Description C ...

  9. poj 1845 Sumdiv 约数和定理

    Sumdiv 题目连接: http://poj.org/problem?id=1845 Description Consider two natural numbers A and B. Let S ...

随机推荐

  1. 如何查看apache配置文件路径

    我是用https://lamp.sh/安装的,apache配置文件位置在:/usr/local/apache/conf/httpd.conf如果是直接安装的apache,配置文件应该在:/etc/ht ...

  2. python仪表盘

    1.在这里可以看到pyecharts中有定义好的各种图标类. 复制上面代码,会出现“ModuleNotFoundError: No module named 'pyecharts'”. pip ins ...

  3. SVG圆盘时钟动画

    在线演示 本地下载

  4. American Heritage usaco

    基础题,主要思路是找到根,然后分别递归即可: #include<iostream> #include<cstring> #include<string> #incl ...

  5. 编译debian内核

    玩腻了开发板,在pc上编译linux内核. debian 官方的内核文档见http://kernel-handbook.alioth.debian.org 我选择编译与当前内核版本对应的linux内核 ...

  6. Linux之make的用法讲解

    在 Linux环境下使用 GNU 的 make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译.连接以至于最后的执行.不过这需要我们投入一些时间去完成一个或者多个 ...

  7. glViewport()函数和glOrtho()函数的理解(转)

    转:http://www.cnblogs.com/yxnchinahlj/archive/2010/10/30/1865298.html 摘要:glOrtho相当指定图框的大小,由此会使得图框里的图形 ...

  8. 深入理解JVM - 虚拟机字节码执行引 - 第八章

    概述从外观上看起来,所有的 Java 虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果.主要从概念模型的角度来讲解虚拟机的方法调用和字节码执行. 运行时 ...

  9. 使用gdb调试c/c++代码

    转自 http://blog.csdn.net/haoel/article/details/2879 GDB概述———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较 ...

  10. Linux-NoSQL之memcached

    1.memcached安装 yum search memcached yum install -y libevent memcached libmemcached 启动:/etc/init.d/mem ...