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. Map总结--HashMap/HashTable/TreeMap/WeakHashMap使用场景分析(转)

    首先看下Map的框架图 1.Map概述 1.Map是键值对映射的抽象接口 2.AbstractMap实现了Map中绝大部分的函数接口,它减少了“Map实现类”的重复编码 3.SortedMap有序的“ ...

  2. 《程序员代码面试指南》第八章 数组和矩阵问题 打印N 个数组整体最大的Top K

    题目 打印N 个数组整体最大的Top K java代码 package com.lizhouwei.chapter8; /** * @Description: 打印N 个数组整体最大的Top K * ...

  3. iOS Assertion failure in -[UITableView _classicHeightForRowAtIndexPath:]

    Assertion failure in -[UITableView _classicHeightForRowAtIndexPath:], /SourceCache/UIKit_Sim/UIKit-3 ...

  4. matlab给图片插入说明文字

    text(cluster().center(),cluster().center(),num2str(),'color','k') 格式是text(x,y,'说明文字') x,y代表位置

  5. Centos6.4 相关配置记录

    1.手动开启eth0网卡 在虚拟机里装完CentOS6.4之后,使用NAT模式,输入ifconfig发现没有IP地址,查找了一下资料,原来是: 在CentOS 6.x的版本中,默认网卡是不开启的,需要 ...

  6. laravel基础课程---4、Laravel基础网站结构搭建

    laravel基础课程---4.Laravel基础网站结构搭建 一.总结 一句话总结: 1.搭建网站前后台路由:在路由组Route::group()中设置好命名空间和前缀 2.搭建控制器:比如1)新建 ...

  7. db2move 数据导出整理

    db2move <database-name> <action> [<option>   <value>] 命令解释:1).database-name, ...

  8. 分享知识-快乐自己:spring_Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson

    心路历程: 在Controller中return 对象的时候,对象中的属性值中文部分在浏览器中 显示为问号?? 然后结果是这样的:?? 尝试排查原因: 中文乱码常有以下三种: 1.request.re ...

  9. github添加ssh公钥

    使用git作为版本维护工具非常方便,而且一般个人用github作为远端库就够用了.而一般git连接github的方式采用ssh的方法,http的会略微慢一些.所以为了方便一般会在github设置中添加 ...

  10. NASNet学习笔记——   核心一:延续NAS论文的核心机制使得能够自动产生网络结构;    核心二:采用resnet和Inception重复使用block结构思想;    核心三:利用迁移学习将生成的网络迁移到大数据集上提出一个new search space。

    from:https://blog.csdn.net/xjz18298268521/article/details/79079008 NASNet总结 论文:<Learning Transfer ...