题目链接
AcWing 97.

本题有两种方法,公式法与求逆元,这里使用逆元求等比数列的和
注意逆元不存在的情况(代码中有标注)

/*1.分治法2.同余逆元对于(a/b)%MOD  逆元不存在:等价于b % MOD = 0
*/#include <bits/stdc++.h>using namespace std;typedef long long ll;
const int MOD = 9901;
int p[50000010],cnt[50000010];
int total;ll quick_mod(ll a,ll b,ll p){ll res = 1;while(b){if(b&1)     res = res * a % p;b >>= 1;a = a * a % p;}return res % p;
}ll getInv(ll b){return quick_mod(b,MOD-2,MOD);
}void get(ll n){for(ll i=2;i*i<=n;i++){if(n%i==0){p[++total] = i;while(n%i==0){cnt[i]++;n /= i;}}}if(n>1){p[++total] = n;cnt[n]++;}return;
}int main()
{ll a,b;cin >> a >> b;if(a==0){cout << "0\n";return 0;}get(a);ll s = 1;// 注意处理不存在逆元的情况.for(int i=1;i<=total;i++){/*如果逆元不存在,即 (p-1)%MOD = 0  -->  p % MOD = 1即等比数列每一项 %MOD 均等于1*/if(p[i]%MOD==1){s = (s * (b*cnt[p[i]]+1)) % MOD;continue;}ll inv = getInv(p[i]-1);ll fz = quick_mod((ll)p[i],b*cnt[p[i]]+1,MOD);fz = (fz - 1 + MOD) % MOD;       // 注意处理负数的情况.ll m = (fz * inv) % MOD;s = s * m % MOD;}cout << s << endl;return 0;
}

约数之和(分治,公式变形)相关推荐

  1. 【ACWing】97. 约数之和

    题目地址: https://www.acwing.com/problem/content/99/ 假设现在有两个自然数 a a a和 a a a, s s s是 a b a^b ab的所有约数之和.请 ...

  2. hdu1852 Beijing 2008(约数之和 : 无逆元除法取模 | 等比数列分治求和)

    题意: 给你n,k,M=2008n%k,求2008M%k给你n,k,M = 2008^{n}\%k,求2008^{M}\%k给你n,k,M=2008n%k,求2008M%k 思路: 唯一分解定理分解质 ...

  3. POJ1845(约数之和)

    自闭的人的题解 POJ1845 约数之和 题目描述: 给你两个整数A.B,让你求出a^b中所有的约数的和膜上9901的值. 输入 : 两个正整数A,B 输出 : 一个正整数表示答案 样例: IN :2 ...

  4. AcWing_97 约数之和

    约数之和 链接 AcWing_97 约数之和 题目描述 假设现在有两个自然数 A A A 和 B B B, S S S 是 A B A^B AB 的所有约数之和. 请你求出 S m o d 9901 ...

  5. 算法刷题-数论-试除法求约数、约数个数、约数之和、最大公约数(辗转相除法)

    文章目录 acwing869. 试除法求约数 acwing870. 约数个数 acwing871. 约数之和 acwing872. 最大公约数 acwing869. 试除法求约数 acwing869. ...

  6. 质因数 求约数 c语言,【初等数论】 求一个数有多少约数及所有约数之和、分解质因数...

    今天做题遇见,于是就搜了一下,于是就有了这篇文章.(其实我不知道原理....Orz)我觉得分解质因数的最优算法应该不是我这篇文章中的这个.....谁有好的算法可以给我说一下,谢谢. 1.有多少个约数: ...

  7. lightoj 1098 A New Function 约数之和(一道奇怪的数论) 整除分块优化

    文章目录 题目如下: 思考人生: 题目如下: lightoj 1098 A New Function 求1-n所有数的所有约数之和(不包括1和它本身).n<=2e9. 思考人生: 首先考虑打表找 ...

  8. 【算法基础15】如何求约数?约数个数?约数之和?最大公约数?

    一.试除法求约数 主要思想:由于当n/a=b时,a和b都是n的约数,即约数总是成对出现,可以在一次循环中同时找到i和n/i两个约数,只需要循环n/i次就能找到所有约数. 例题:求一个数的所有约数,并将 ...

  9. 《算法竞赛进阶指南》打卡-基本算法-AcWing 97. 约数之和:递归、快速幂

    文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 快速幂参考笔者的这篇博文: 算法刷题-数论-组合数.快速幂.逆元.递推求组合数.逆元求组合数 约数之和参考笔者的这篇博文: 算法刷题 ...

  10. 51NOD 1220 约数之和(杜教筛)

    1220 约数之和 推式子 ∑i=1n∑j=1nd(i,j)=∑i=1n∑j=1n∑x∣i∑y∣j(gcd(x,y)=1)xjy=∑d=1ndμ(d)∑i=1nd∑x∣iix∑j=1nd∑y∣jj=∑ ...

最新文章

  1. C++控制台没有引用的头文件也会编译的原因
  2. 作业收缴系统设计手册(自写开源小系统)
  3. vue2.0+stylus实现星级评定组件,computed计算属性实现全星半星,动态改变星级,多种星星规格
  4. 有线电视的现状与发展,全国一网与广电5G一体化建设
  5. Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
  6. MetricBeat(win/linux)部署 系统CPU内存等资源情况监控
  7. Makefile工程管理语法与使用技巧
  8. 【笔试面试题】腾讯2013实习生面试算法题及参考答案
  9. 树莓派入门教程 - 0 - 准备篇 - 0.4 树莓派安装FTP服务器
  10. 开发人员在编写 HTML 和 CSS 时最常犯的六大错误
  11. java 调用 c# webservice 压缩 Liststring示例
  12. NVIDIA cuDNN 下载
  13. 一行 Python 代码,20款经典小游戏
  14. 米思齐(Mixly)图形化系列教程(四)-运算符
  15. ENSP模拟实验OSPF NSSA区域
  16. 埃隆·马斯克(Elon Musk)
  17. discuz php单页,Discuz! X2 自定义单页面最简单方法
  18. PHP限制字符串显示长度
  19. 系统性简述蓝牙以及ESP32对BLE蓝牙的使用(一)
  20. lk:littlekernel-概述

热门文章

  1. 【PL/SQL】 学习笔记 (3)if 语句使用
  2. Eclipse 使用 SVN 插件后修改用户方法汇总
  3. oc21--super
  4. Spring中注入List,Set,Map,Properties的xml文件配置方法
  5. 前年的斐波那契蹲在地上看着你,笑而不语
  6. [教程]centos卸载、安装mysql(源码编译安装方式)
  7. HDOJ 4003 Find Metal Mineral (树DP)
  8. android post 提交数据
  9. [C#]启动外部程序
  10. 一步步教你优化Delphi字串查找(转载)