求a^b的约数对mod取模
const int maxn=+; int prime[maxn];
void marktable(int n){
memset(prime,,sizeof(prime));
for(int i=;i<=n;i++){
if(!prime[i]) prime[++prime[]]=i;
for(int j=;j<=prime[]&&prime[j]<=n/i;j++){
prime[prime[j]*i]=;
if(i%prime[j]==) break;
}
}
}
long long factor[][];
int fatCnt;
int getFactors(long long x){
fatCnt=;
long long tmp=x;
for(int i=;prime[i]<=tmp/prime[i];i++){
factor[fatCnt][]=;
if(tmp%prime[i]==){
factor[fatCnt][]=prime[i];
while(tmp%prime[i]==){
factor[fatCnt][]++;
tmp/=prime[i];
}
fatCnt++;
}
}
if(tmp!=) {
factor[fatCnt][]=tmp;
factor[fatCnt++][]=;
}
return fatCnt;
}
int mod,A,B;
template<class T,class T1> T fast_mod(T a,T b,T1 Mod){
a%=mod;
if(b==) return ;
T ans=,base=a;
while(b!=){
if(b&)ans=(ans*base)%Mod;
base=(base*base)%Mod;
b>>=;
}
return ans;
} long long sum(long long p,long long n){
if(p==) return ;
if(n==) return ;
if(n&) return ((+fast_mod(p,n/+,mod))%mod*sum(p,n/)%mod)%mod;
else return ((+fast_mod(p,n/+,mod))%mod*sum(p,n/-)+fast_mod(p,n/,mod)%mod)%mod;
}
long long solve(long long A,long long B){
getFactors(A);
long long ans=;
for(int i=;i<fatCnt;i++){
ans*=sum(factor[i][],B*factor[i][])%mod;
ans%=mod;
}
return ans;
}
求a^b的约数对mod取模的更多相关文章
- 数学:A^B的约数(因子)之和对MOD取模
POJ1845 首先把A写成唯一分解定理的形式 分解时让A对所有质数从小到大取模就好了 然后就有:A = p1^k1 * p2^k2 * p3^k3 *...* pn^kn 然后有: A^B = p1 ...
- hdu 5265 技巧题 O(nlogn)求n个数中两数相加取模的最大值
pog loves szh II Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- a ^ b mod c 取模运算优化反思(老物)
这是一篇嘲讽我之前的自己采用笨重愚蠢思想去解决问题的日志. RSA 加密与解密涉及到 a ^ b mod c 的问题,如何计算这个值呢? 我会选择 pow(a, b) % c, 事实上在写RSA的时候 ...
- mongoDB 高级查询之取模查询$mod
http://hancang2000.i.sohu.com/blog/view/235140698.htm $mod取模运算 查询age取模10等于0的数据 db.student.find( { ...
- hdu 4291 A Short problem(矩阵+取模循环节)
A Short problem Time Limit: 2000/1000 MS (J ...
- CodeForces 404 Marathon ( 浮点数取模 -- 模拟 )
B. Marathon time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- poj 2065 高斯消元(取模的方程组)
SETI Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1735 Accepted: 1085 Description ...
- ShardingSphere-proxy-5.0.0企业级分库分表、读写分离、负载均衡、雪花算法、取模算法整合(八)
一.简要说明 以下配置实现了: 1.分库分表 2.每一个分库的读写分离 3.读库负载均衡算法 4.雪花算法,生成唯一id 5.字段取模 二.配置项 # # Licensed to the Apache ...
- POJ 1845 求a^b的约数和
题目大意就是给定a和b,求a^b的约数和 f(n) = sigma(d) [d|n] 这个学过莫比乌斯反演之后很容易看出这是一个积性函数 那么f(a*b) = f(a)*f(b) (gcd(a,b) ...
随机推荐
- Mac启动MongoDB报错:exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
这是主要错误: initAndListen中的异常:NonExistentPath:找不到数据目录/ data / db. 最新版的Mac系统Catalina发生了令人惊讶的更改:它不允许更改根目录( ...
- Mac将本地文件上传到Centos7(Linux)服务器上
1.打开终端,输入命令: scp /Users/codez/Downloads/jdk-8u144-linux-x64.tar.gz root@139.224.235.xxx:/root/java/j ...
- ArcMap制图遇到的小问题
情况一 在attributes table中查看,发现是一条记录,实际上这一条记录由多个面要素组合而成,且彼此间没有交集,现在需要把他们全部分开来,单独独立变成一条要素记录 方法: Editor--& ...
- 1.3.5 详解项目中的资源——Android第一行代码(第二版)笔记
所有以drawable开头的文件夹都是用来存放图片的. 所有以mipmap开头的文件夹都是用来存放应用图标的 所有以values开头的文件夹都是用来存放字符串.样式.颜色等配置的, layout文件夹 ...
- sqli-labs-Basic Challenges
sqli_labs注入学习 一.SQL基本语法 1.1show databases; 显示MySQL数据库里边所有的库: 1.2use [table name]; 使用特定的数据库: 1.3show ...
- ThreadPoolExecutor之RejectedExecutionHandler
最近工作种常用到ThreadPoolExecutor这个对象, 这是一个并发编程中非常常用的对象.因为和并发编程相关所以它存在于java.util.concurrent这包中. 创建这个对象的基本方法 ...
- oracle 数据库 Cause: java.sql.SQLSyntaxErrorException: ORA-00904: "BODY": 标识符无效
1.全大写或者加引号 SELECT TEST_NAME FROM T_TEST 或者 SELECT “test_name” from "t_user"
- centos的安装与配置,Linux下基本命令、权限控制,解压缩文件以及软件的安装与卸载
centos安装与网络配置 关机:shutdown -h now 重启:shutdown -r now 或 reboot linux目录结构与操作命令 使用ls命令查看目录结构 目录查看: ls [- ...
- .NET知识梳理——6.lambda
1. lambda 1.1 匿名方法lambda表达式 Lambda表达式 Lambda是一个匿名方法,实例化委托的一个参数,编译的时候会产生一个密封类,同时增加一个方法. Lambda ...
- swiper滑动失效问题
最近在写移动端的项目,页面有用的是swiper滑动的. 但是会发现在滑动时,不灵活,就是滑动时隐藏的数据会显示,但是不滑动数据又在初始那,隐藏的数据还是看不到. 于是各种排除问题,终于在pc端+移动端 ...