cogs 2691. Sumdiv
2024-09-03 12:44:07
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);
}
最新文章
- Centos 6.5 X64 环境下编译 hadoop 2.6.0 --已验证
- ArcEngine 栅格数据
- Java实现点击一个Jlabel增加一个Jlabel的小功能
- Android AIDL 进行进程间通讯(IPC)
- 续Gulp使用入门三步压缩图片
- 表单form action的url写法
- domion Designer 管理员ID过期
- XML学习笔记(2)--dom4j操作XML
- ASP.NET MVC Spring.NET 整合
- 纯CSS3实现超立体的3D图片侧翻倾斜效果
- C++断言assert
- Java整型数组的最大长度到底有多长?
- Partition List -- LeetCode
- bzoj4554: [Tjoi2016&;Heoi2016]游戏 二分图匹配
- java垃圾回收的分类
- Hbase问题
- Java调用WebService就是这么简单
- Selenium高亮页面对象
- Spark 编程模型(上)
- 【刷题】BZOJ 2190 [SDOI2008]仪仗队
热门文章
- 【linux】记录一次系统被攻击的处理过程
- Java for LeetCode 116 Populating Next Right Pointers in Each Node
- Linux学习之路(四)帮助命令
- 高并发压力下导致数据库bug
- 分享知识-快乐自己:SpringMvc整合遇到-前台传JSON参数,后台实体类对象接收
- python做图笔记
- nginx websocket
- 编写html页面时常见的问题(二)
- EntityFramework Code First 构建外键关系,数据库不生成外键约束
- AI-Info-Micron-Insight:案例分析:美光使用数据和人工智能来发现、倾听和感觉