求a^b的约数对mod取模
2024-09-06 13:42:33
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;
}
最新文章
- linux集群时钟问题
- Notepad++列编辑模式
- JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)
- Yii2.0中文开发向导——Where条件查询全解析
- ssdb使用
- 生成动态前缀且自增号码的Oracle函数
- 更换手机号或者更换手机后QQ设备锁的设置问题
- QT静态链接
- Linux Chaining Operators用法学习
- Introduction to the POM
- hive支持sql大全
- Drupal7模块multiselect使用
- java 实例方法和类方法的区别
- linux -->; 文件系统十问
- LindDotNetCore~Ocelot实现微服务网关
- DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
- git 版本管控 发布
- 手把手教你Chrome浏览器安装Postman(含下载云盘链接)【转载】
- poj1723 SOLDIERS
- 使用 Array2XML把数组转成XML格式,有相同的节点
热门文章
- Java基于过滤器进行重定向不成功问题的兩種解決辦法,以及基於JSF的ajax重定向解決辦法
- .NET面试题整理(持续更新)
- Zookeeper分布式系统协同器概念快速学习
- Android布局管理器-使用LinearLayout实现简单的登录窗口布局
- mysql中EXPLAIN 的作用
- redis 5.0.7 源码阅读——动态字符串sds
- mysql 查询出现 ";this is incompatible with sql_mode=only_full_group_by";错误解决方案,以及个人rpm方式重装所遇到的问题备份
- nginx基础(二)
- php ip转换省市县
- Quartz.NET - 教程 5: 简单触发器