小M的因子和

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述

小M在上课时有些得意忘形,老师想出道题目难住他。小M听说是求因子和,还是非常得意,但是看完题目是求A的B次方的因子和,有些手足无措了,你能解决这个问题吗?

输入
有多组测试样例
每行两个数 A ,B ,(1≤A,B≤10^9) 
输出
输出A的B次方的因子和,并对9901取余。
样例输入
2 3
样例输出
15

分析:对A进行质因数分解,假设A = (p1^a1) * (p2^a2)*……*(pk^ak),假设A的因子和为sum,

则sum=(1 + p1 + p1^2 + ……+p1^a1)*(1+p2+p2^2 + ……+p2^a2)*……*(1+pk+pk^2+……+pk^ak),把这个式子展开之后.每一项刚好是A的因子。

所以求A^B的因子和时,只需把ai 改为ai*b,然后再求解即可。求得时候因为次方比较大,要用分治和快速幂来求。

#include <cstdio>
#include <cmath>
const int mod = 9901;int Pow(int a, int n) {  //快速幂求a^nint res = 1;a %= mod;while(n) {if(n&1) res = res * a % mod;a = a * a % mod;n >>= 1;}return res;
}int get_sum(int a, int n) {  //求(1 + a + a^2 + …… + a^n)if(n == 0) return 1;if(n&1) return get_sum(a, n / 2) * (Pow(a, (n / 2 + 1)) + 1) % mod;else return (get_sum(a, n / 2 - 1) * (Pow(a, n / 2) + 1) + Pow(a, n)) % mod;
}int main() {int a, b;while(~scanf("%d%d", &a, &b)) {int ans = 1;int m = (int)sqrt(a + 0.5);for(int i = 2; i <= m; ++i) {if(a % i == 0) {int k = 0;while(a % i == 0) {k++;a /= i;}ans = ans * get_sum(i, k * b) % mod;}}if(a > 1) ans = ans * get_sum(a, b) % mod;printf("%d\n", ans);}return 0;
}

NYOJ 928 小M的因子和(数论)相关推荐

  1. poj-1845 Sumdiv nyoj - 928 小M的因子和

    题意:求解A^B的因子和 mod 9901 先求解素因子,然后二分求解等比数列 #include<cstdio> #include<cmath> typedef long lo ...

  2. 牛客练习赛44 C 小y的质数 (数论,容斥定理)

    链接:https://ac.nowcoder.com/acm/contest/634/C 来源:牛客网 题目描述 给出一个区间[L,R],求出[L,R]中孪生质数有多少对. 由于这是一个区间筛质数的模 ...

  3. Luogu P3951 小凯的疑惑【数论】

    解题思路 经过朋友指点发现是数论. 首先我们设一个 k k k, 我们让 k = m a + n b k=ma+nb k=ma+nb( m , n m,n m,n 为参数, m ≥ 0 m≥0 m≥0 ...

  4. 每日一题——小b和灯泡(数论)

    学习目标: 代码越怪,跑的越快. 我们常规面对一个问题,第一想法在绝大部分都不是最优的.时空间复杂度都很高,需要我们不断地寻找规律去优化.就像我们常说的"有些你写了几十行的代码,人家只用三行 ...

  5. NYOJ 453 小珂的烦恼 模拟

    这道题是大一的一次月赛题目,,悲崔的是,我想了好久才想出来,想出来还超时了,,太菜了,太菜了...后来仔细想了想,改了一个地方就过了.. 思路:就是模拟,判断当前没出现过的最小的是哪个数即可.判断第i ...

  6. NYOJ 676 小明的求助

    小明的求助 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 小明对数学很有兴趣,今天老师出了道作业题,让他求整数N的后M位,他瞬间感觉老师在作弄他,因为这是so easy ...

  7. NYOJ 453 小珂的烦恼

    小珂的烦恼 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 小珂遇到了一个麻烦的问题,有这样的N对数(1,2),(3,5),(4,7),(6,10)--,第i对的差值为i ...

  8. NYOJ 875 小M的操作数

    小M的操作数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 最近小M上课老瞌睡,落下许多功课,现在就遇到了一个问题: 当一个数对(x,y)中有一个数大于或等于m时(当然 ...

  9. NYOJ 240 小明的调查统计(二)

    小明的调查统计(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 最近小明他们社团对理工全校每个班级进行了一次社会调查,他们对每同学的数学成绩进行了统计.小明的任务是 ...

最新文章

  1. KeyDown、KeyPress和KeyUp事件的区别与联系
  2. [CareerCup] 16.5 Semphore 信号旗
  3. measureChildren作品
  4. mysql 百度地图插件_GitHub - huizhong/grafana-baidumap-panel: Grafana 百度地图插件
  5. 转:如何求出grid图像每个cell对应的x,y坐标?
  6. Eclipse export导出war包报错(Module name is invalid.)
  7. 儿童节,5岁宝宝写给程序员爸爸的一封信!萌翻了!
  8. 农夫过河+java,农夫过河问题(java版)
  9. 360技术嘉年华第七季——测试之美 报名啦
  10. 2018-2-13-win10-uwp-如何让WebView标识win10手机
  11. android 测试js,Android 全自动js脚本测试 Appium教程——appium环境搭建(一)
  12. 10道经典java面试题_实习生必问(java基础)
  13. Android Qcom USB Driver学习(八)
  14. 编辑混合变形变形器(Blend Shape)
  15. pythonl list去子集
  16. java构造方法时对象初始化,实例化,参数赋值
  17. Android 客户端起HttpServer NanoHttpd
  18. 物联网智能猫砂盆解决方案
  19. java wap_JAVA和WAP移动学习技术
  20. 大学课程计算机鼠标和键盘的介绍,计算机基础课程鼠标和键盘”.ppt

热门文章

  1. flutter笔记1 VScode安装dart code插件踩坑记录
  2. SpringBoot中的Quartz应用
  3. 容器化实践金融业案例一
  4. Maven实战(二)——POM重构之增还是删
  5. C#设计模式系列:享元模式(Flyweight)
  6. SAP BAPI的一些初级资料
  7. trouble identification check tree
  8. 收到贺卡和礼物的处理方法
  9. 哥大计算机工程申请入口和登陆入口
  10. CPU和微架构的概念