文章目录

  • 题目解答
  • 题目来源

题目解答


来源:acwing

分析:
快速幂参考笔者的这篇博文:
算法刷题-数论-组合数、快速幂、逆元、递推求组合数、逆元求组合数

约数之和参考笔者的这篇博文:
算法刷题-数论-试除法求约数、约数个数、约数之和、最大公约数(辗转相除法)

假设N分解质因数的结果是:
N=p1a1×p2a2×...×pkakN={p_1}^{a_1}\times{p_2}^{a_2}\times...\times{p_k}^{a_k}N=p1​a1​×p2​a2​×...×pk​ak​

则这个数N的约数之和等于
(p10+p11+p12+...+p1a1)×(p20+p21+p22+...+p2a2)×...×(pk0+pk1+pk2+...+pkak)(p_{1}^{0}+p_{1}^{1}+p_{1}^{2}+...+p_{1}^{a_{1}})\times(p_{2}^{0}+p_{2}^{1}+p_{2}^{2}+...+p_{2}^{a_{2}})\times...\times(p_{k}^{0}+p_{k}^{1}+p_{k}^{2}+...+p_{k}^{a_{k}})(p10​+p11​+p12​+...+p1a1​​)×(p20​+p21​+p22​+...+p2a2​​)×...×(pk0​+pk1​+pk2​+...+pkak​​)
以上称为“约数和定理”,在小学奥数中有应用。

下面的sum(p,k)就是用来等比数列求和。答案就是所有的相乘。

AC代码

#include<bits/stdc++.h>
using namespace std;
const int mod = 9901;
// 快速幂求a ^k % mod
int qmi(int a, int k){a %= mod;int res = 1;while(k){if( k & 1)  res = res * a % mod;a = a * a % mod;k >>= 1;}return res;
}
// 求 p^0 + p^1 + ... + p ^k 等比数列求和
int sum(int p, int k){if( k == 0) return 1;// k 是偶数,则0到k是k+1个数,奇数个数if( k % 2 == 0) return ((long long)p * sum(p, k-1)  + 1) % mod;//偶数个数的处理return (1 + qmi(p, k/2 + 1)) * sum(p, k/2) % mod;}int main(){int A, B;cin >> A >> B;int res = 1;// 求出A的每个约数的个数sfor(int i = 2; i <= A; i ++){int s = 0; // s是约数个数while( A % i == 0){s ++;A /= i;}if(s) res = res * sum(i, s * B) % mod;}if(!A) res = 0;cout << res << endl;
}

题目来源

https://www.acwing.com/problem/content/99/

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

  1. 《算法竞赛进阶指南》打卡-基本算法-AcWing 93. 递归实现组合型枚举:递归与递推、dfs、状态压缩

    文章目录 题目解答 题目链接 题目解答 分析: 此题和笔者另一篇博文很像,只不过是限定了个数.<算法竞赛进阶指南>打卡-基本算法-AcWing 92. 递归实现指数型枚举:递推与递归.二进 ...

  2. 金字塔(算法竞赛进阶指南)

    虽然探索金字塔是极其老套的剧情,但是有一队探险家还是到了某金字塔脚下. 经过多年的研究,科学家对这座金字塔的内部结构已经有所了解. 首先,金字塔由若干房间组成,房间之间连有通道. 如果把房间看作节点, ...

  3. 《算法竞赛进阶指南》数论篇

    <算法竞赛进阶指南>数论篇(1)-最大公约数,素数筛,欧拉函数,同余,欧拉定理,BSGS <算法竞赛进阶指南>数论篇(1)-最大公约数,素数筛,欧拉函数,同余,欧拉定理,BSG ...

  4. 《算法竞赛进阶指南(by 李煜东)》习题题解 集合

    又是笔者给自己挖的大坑. 这里是李煜东所著<算法竞赛进阶指南(by 李煜东)>的习题题解集合. 有任何错误请在对应文章下反馈或联系 nicest1919@163.com ,谢谢 qwq 从 ...

  5. CH5202 自然数拆分Lunatic版(算法竞赛进阶指南,完全背包)

    算法竞赛进阶指南,278页,完全背包 本题要点: 1.把完全背包的代码改改即可.常规的完全背包: 有n个物品,每个物品的体积是v[i], 价值是w[i], 求装到大小为m的大背包,能获得的最大价值(每 ...

  6. 中位数--《算法竞赛进阶指南》(货仓选址和七夕祭问题详解)

    中位数 今天又和大家见面了啦~ 依旧是 <算法竞赛进阶指南>的学习哦~ 中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本.种群或概 ...

  7. AcWing 122. 糖果传递【贪心】【《算法竞赛进阶指南》,微软面试题 , HAOI2008】

    AcWing 122. 糖果传递 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 122. 糖果传递 进阶题目 AcWing 105 ...

  8. 算法竞赛进阶指南 骑士放置

    4: 最大独立集 :选出最多的点,使得选出的点之间没有边. 求最大独立集:选出最小的点可以破坏所有的边 <==>最小点覆盖 <==>最大匹配数. 假设最大匹配数为m,共有n个点 ...

  9. 算法竞赛进阶指南 萌新入门!

    算法竞赛进阶指南 文章目录 算法竞赛进阶指南 前言 一.介绍本书 二.如何阅读本书 三.总结 **笔记思路和结构 ** 算法竞赛进阶指南 这篇文章就简单的写一下吧! 前言 ​ 作为一个想要入坑的算法的 ...

  10. 算法竞赛进阶指南0x3A 博弈论之SG函数

    算法竞赛进阶指南0x3A 博弈论之SG函数

最新文章

  1. 爱立信前CEO Hans Vestberg成为Verizon三巨头之一
  2. ASP.NET Core中GetService()和GetRequiredService()之间的区别
  3. HDU 1574 RP问题
  4. getdata提取曲线数据_Origin如何从图表中获取数据
  5. C语言 迷宫问题求解(顺序栈应用示例)
  6. CSS文件可维护、可读性提高指南第2/2页
  7. CryptoHelper HMAC/X509/RSA/TripleDes/Hash/MD5/SHA1 (Release 3)
  8. php 字符串含有下划线,PHP-我的会话ID中有下划线
  9. Enterprise Architect 8.0 注册码及其使用教程
  10. 木兰宽松许可证(MulanPSL v2)解析
  11. ie9服务器win2008系统离线安装包,IE9离线安装包完整版
  12. 爱尚QQ网修改QQ在线机型源码
  13. 评《软件测试职业发展三步曲》
  14. python毕业设计论文-基于Python的网络爬虫的设计与实现.doc
  15. Python数据分析_美国犯罪数据_US_Crime_Rates EDA.csv
  16. 概率抽奖常用两种方式
  17. 【测试】18.系统测试及类型
  18. 导出期刊对应格式的参考_中文参考文献怎么一键导出正确格式?写作必看!
  19. vue antd table customRender 自定义标签
  20. 哈工大软件构造期末知识点总结

热门文章

  1. iOS本地化项目上传到gitHub
  2. mysql 重置root密码
  3. PHP程序员应该掌握的10项技能
  4. 神经网络的sigmoid激活函数是一种平方映射
  5. 张志华 机器学习 两门课程正确顺序及视频连接
  6. java 反射 Gc_深入浅析Java反射机制
  7. 陕西中小企业促进局 e-mail_重点注意2020陕西工程师职称评审破格指南
  8. 【Leetcode | easy】最长公共前缀
  9. stm32 USB CDC 不接电脑无程序一直在USB中断问题
  10. linux获取明文密码,linux下抓取内存中明文密码mimipenguin