题目链接

首先介绍两个定理。

整数唯一分解定理:任意正整数都有且只有一种方式写出素数因子的乘积表达式。

\(A=(p1k1 p2k2 ...... pnkn \)

求这些因子的代码如下

for(int i=;i*i<=a;++i){
if(!(a%i)){
prime[++num]=i;
while(!(a%i)){
a/=i;
sum[num]++;
}
}
}
if(a!=){
prime[++num]=a;
sum[num]=;
}

唯一分解定理

约数和公式:对于已经分解的整数A,有A的所有因子和为

\( S= (1+p1+p12+p13+......+p1k1) (1+p2+p22+p23+......+p2k2)........(1+pn+pn2+pn3+......+pnkn) \)

所以局势明朗。用快速幂求出p的k*b次方,然后递归求和。代码如下

long long Sum(long long p,long long n){
if(n==) return ;
if(n&) return (Sum(p,n>>)*(+Pow(p,(n>>)+)))%mod;
return (Sum(p,(n>>)-)*(+Pow(p,(n>>)+))+Pow(p,n>>))%mod;
}

解题代码如下

#include<cstdio>
#include<cctype>
#define mod 9901
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} int prime[];
int sum[];
int num; long long Pow(long long n,long long i){
if(i==) return ;
if(i==) return n%mod;
long long ret=Pow(n,i>>);
if(i&) return (((ret*ret)%mod)*n)%mod;
return (ret*ret)%mod;
} long long Sum(long long p,long long n){
if(n==) return ;
if(n&) return (Sum(p,n>>)*(+Pow(p,(n>>)+)))%mod;
return (Sum(p,(n>>)-)*(+Pow(p,(n>>)+))+Pow(p,n>>))%mod;
} int main(){
long long a=read(),b=read();
for(int i=;i*i<=a;++i){
if(!(a%i)){
prime[++num]=i;
while(!(a%i)){
a/=i;
sum[num]++;
}
}
}
if(a!=){
prime[++num]=a;
sum[num]=;
}
int ans=;
for(int i=;i<=num;++i)
ans=(ans*Sum(prime[i],sum[i]*b)%mod)%mod;
printf("%d",ans);
return ;
}

【Luogu】P1593因子和(唯一分解定理,约数和公式)的更多相关文章

  1. POJ 1845-Sumdiv(快速幂取模+整数唯一分解定理+约数和公式+同余模公式)

    Sumdiv Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  2. HDU-1492-The number of divisors(约数) about Humble Numbers -求因子总数+唯一分解定理的变形

    A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, ...

  3. UVA294DIvisors(唯一分解定理+约数个数)

    题目链接 题意:输入两个整数L,U(L <= U <= 1000000000, u - l <= 10000),统计区间[L,U]的整数中哪一个的正约数最多,多个输出最小的那个 本来 ...

  4. POJ1845Sumdiv(求所有因子和 + 唯一分解定理)

    Sumdiv Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 17387   Accepted: 4374 Descripti ...

  5. 2018.09.28 牛客网contest/197/A因子(唯一分解定理)

    传送门 比赛的时候由于变量名打错了调了很久啊. 这道题显然是唯一分解定理的应用. 我们令P=a1p1∗a2p2∗...∗akpkP=a_1^{p_1}*a_2^{p_2}*...*a_k^{p_k}P ...

  6. 【题解】洛谷P1463 [POI2002][HAOI2007] 反素数(约数个数公式+搜索)

    洛谷P1463:https://www.luogu.org/problemnew/show/P1463 思路 约数个数公式  ai为质因数分解的质数的指数 定理: 设m=2a1*3a2*...*pak ...

  7. HDU-1215 七夕节 数论 唯一分解定理 求约数之和

    题目链接:https://cn.vjudge.net/problem/HDU-1215 题意 中文题,自己去看吧,懒得写:) 思路 \[ Ans=\prod \sum p_i^j \] 唯一分解定理 ...

  8. hdu 1215 求约数和 唯一分解定理的基本运用

    http://acm.hdu.edu.cn/showproblem.php?pid=1215 题意:求解小于n的所有因子和 利用数论的唯一分解定理. 若n = p1^e1 * p2^e2 * ……*p ...

  9. Divisors (求解组合数因子个数)【唯一分解定理】

    Divisors 题目链接(点击) Your task in this problem is to determine the number of divisors of Cnk. Just for ...

随机推荐

  1. Android Studio 遇到的java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessExce问题

    在将一个Eclipse的项目转移到AndroidStudio的过程中,碰到了的问题如下: Error:Execution failed for task ':learnChinese:mergeDeb ...

  2. uvm_reg_item——寄存器模型(五)

    uvm_reg_item 扩展自uvm_sequence_item,也就说寄存器模型定义了transaction item. adapter 的作用是把这uvm_reg_item转换成uvm_sequ ...

  3. web前端性能优化 (share)

    本文转自:http://www.cnblogs.com/50614090/archive/2011/08/19/2145620.html 一. WEB前台的优化规则 一.尽量减少 HTTP 请求 有几 ...

  4. ycsb安装和使用介绍

    nosql性能测试工具ycsb0.1的使用 使用文档参考地址:https://www.cnblogs.com/SailorXiao/p/5808828.html ycsb地址:https://gith ...

  5. 连接MongoDB数据库的配置说明

  6. GUI进化--数据与界面分离

    http://blog.csdn.net/doon/article/details/5946862 1.何谓数据和界面分离? GUI,即Graphic User Interface,人机交换界面.连接 ...

  7. R文件报错的原因

    一般R文件报错,无非是资源文件错误,图片命名错误,但是编译都会报错,可以很快解决.但是前几天,引入一个第三方aar包后,项目编译正确,但是就是R文件报错,找不到R文件,整个项目一片报红. 1)首先编译 ...

  8. Spring @Transactional at interface

    java - Where should I put @Transactional annotation: at an interface definition or at an implementin ...

  9. Sublime Text 套件介紹(四):Pretty JSON

    JSON,一個輕量級的資料交換語言,目前許多網站AJAX request的回應結果都是JSON格式   以下是一個標準的JSON格式   { "firstName": " ...

  10. 把所有界面的状态栏字体颜色设置为白色--iOS开发系列---项目中成长的知识一

    第一步: 在info.plist中 View controller-based status bar appearance这个属性设置为 View controller-based status ba ...