Loj 10211 sumdiv
题目描述
求 A^B 的所有约数之和 mod 9901。
首先,我们要求出A的约数之和。
就是把A分解质因数,成为:a1^k1*a2^k2*a3^k2....
然后约数和就是(a1^0+a1^1+a1^2+....)*(a2^0+a2^1+....)*.......
那么A的B次方就是每一位都乘以一个B
然后对于每一个ai,都是一个等比数列求和。
然后求和公式需要用到除法,需要逆元。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <queue>
#define in(a) a=read()
#define MAXN 100010
#define REP(i,k,n) for(long long i=k;i<=n;i++)
using namespace std;
inline long long read(){
long long x=,f=;
char ch=getchar();
for(;!isdigit(ch);ch=getchar())
if(ch=='-')
f=-;
for(;isdigit(ch);ch=getchar())
x=x*+ch-'';
return x*f;
}
long long pr[],ti[];
long long ind=;
long long mod=;
inline void divide(long long n){
for(long long i=;i*i<=n;i++)
if(n%i==){
pr[++ind]=i;
while(n%i==){
n=n/i;
ti[ind]++;
}
}
if(n>){
pr[++ind]=n;
ti[ind]=;
}
return ;
}
inline long long qpow(long long a,long long b){
long long ans=;
while(b){
if(b%) ans=(ans*a)%mod;
b/=;
a=(a*a)%mod;
}
return ans;
}
int main(){
long long a,b;
long long ans=;
in(a),in(b);
divide(a);
REP(i,,ind){
if(pr[i]-%mod==)
ans=ans*(ti[i]*b)%mod;
long long den,dor;
den=qpow(pr[i],b*ti[i]+)-;
dor=qpow(pr[i]-,mod-);
ans=(ans*(den*dor)%mod)%mod;
}
cout<<ans;
return ;
}
Loj 10211 sumdiv的更多相关文章
- loj题目总览
--DavidJing提供技术支持 现将今年7月份之前必须刷完的题目列举 完成度[23/34] [178/250] 第 1 章 贪心算法 √ [11/11] #10000 「一本通 1.1 例 1」活 ...
- POJ 1845 Sumdiv
快速幂+等比数列求和.... Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 12599 Accepted: 305 ...
- Sumdiv(快速幂+约数和)
Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16244 Accepted: 4044 Description C ...
- poj 1845 Sumdiv 约数和定理
Sumdiv 题目连接: http://poj.org/problem?id=1845 Description Consider two natural numbers A and B. Let S ...
- Sumdiv 等比数列求和
Sumdiv Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 15364 Accepted: 3790 De ...
- poj 1845 POJ 1845 Sumdiv 数学模板
筛选法+求一个整数的分解+快速模幂运算+递归求计算1+p+p^2+````+p^nPOJ 1845 Sumdiv求A^B的所有约数之和%9901 */#include<stdio.h>#i ...
- [Noi2016]区间 BZOJ4653 洛谷P1712 Loj#2086
额... 首先,看到这道题,第一想法就是二分答案+线段树... 兴高采烈的认为我一定能AC,之后发现n是500000... nlog^2=80%,亲测可过... 由于答案是求满足题意的最大长度-最小长 ...
- Loj #2192. 「SHOI2014」概率充电器
Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...
- Loj #3096. 「SNOI2019」数论
Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...
随机推荐
- Confluence wiki——CentOS6.8搭建详解
参考资料:http://www.cnblogs.com/jackyyou/p/5534231.html http://www.ilanni.com/?p=11989 公司需要搭建WIKI方便员工将一些 ...
- 10个造型奇特的css3进度条(有的html被编辑器转义了,上面的代码还是OK的)。。。转载
<div id="caseVerte"> <div id="case1"></div> <div id="c ...
- 20155224 2016-2017-2 《Java程序设计》第6周学习总结
20155224 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 Thread线程: 定义某线程后,要有 xxx.stard(); Thread.sleep( ...
- 蓝桥杯 问题 1117: K-进制数 (递归)
题目链接 题目描述 考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0. 考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0. 例: ...
- 20155303 2016-2017-2 《Java程序设计》课程总结
20155303 2016-2017-2 <Java程序设计>课程总结 目录 一.每周作业及实验报告链接汇总 二.关于博客 自认为写得最好一篇博客是?为什么? 作业中阅读量最高的一篇博客是 ...
- 【API】文件操作编程基础-CreateFile、WriteFile、SetFilePointer
1.说明 很多黑客工具的实现是通过对文件进行读写操作的,而文件读写操作实质也是对API函数的调用. 2.相关函数 CreateFile : 创建或打开文件或I/O设备.最常用的I/O设备如下:文件,文 ...
- python3之SQLAlchemy
1.SQLAlchemy介绍 SQLAlchemy是Python SQL工具包和对象关系映射器,为应用程序开发人员提供了SQL的全部功能和灵活性. 它提供了一整套众所周知的企业级持久性模式,专为高效和 ...
- python之celery使用详解(二)
前言 前面我们了解了celery的基本使用后,现在对其常用的对象和方法进行分析. Celery对象 核心的对象就是Celery了,初始化方法: class Celery(object): def __ ...
- C#使用WSDL服务总结
站在巨人肩上才能看的更远! 1.C# 利用VS自带的WSDL工具生成WebService服务类 2.C#使用WSDL服务
- ajax与302响应
在ajax请求中,如果服务器端的响应是302 Found,在ajax的回调函数中能够获取这个状态码吗?能够从Response Headers中得到Location的值进行重定向吗?让我们来一起看看实际 ...