题目地址

看到这题的题解,大佬都说是小学奥数,蔡得我不敢鸡声

求 \(a^b\) 所有的约数之和 mod \(9901\) \((1<=a,b<=5*10^7)\)

题解

做这道题,我还赶紧去看了一下 唯一分解定理

我们先把 \(a\) 分解质因数

\[a=p_1^{c_1}*p_2^{c_2}*...*p_n^{c_n}\]

比如说 \(12\) 可以分成 \(2^2+3^1\) 啦

因为 同指数幂相乘,指数不变,底数相乘 ,所以就有:

\[a^b=p_1^{c_1*b}*p_2^{c_2*b}*...*p_n^{c_n*b}\]

根据 唯一分解定理,\(a^b\) 的约数和就是

\[(1+p_1+p_1^2+...+p_1^{c_1*b})*(1+p_2+p_2^2+...+p_2^{c_2*b})*...*(1+p_3+p_3^2+...+p_3^{c_3*b})\]

大佬看出了是等比数列,而我这个蒟蒻没有看出来

因为等比数列的求和公式要用除法,除法不满足 \(\text{mod}\) 的分配律

所以我们就迎来了这个题目的重点——分治

设 \(\text{sum}(p,c)\),为 \((1+p+p^2+...+p^{c})\)

  • 若 \(c\) 为奇数,则有

\[\text{sum}(p,c)=(1+p+...+p^{\frac{c-1}{2}})+(p^{\frac{c+1}{2}}+...+p^c)\]

\[=1*(1+p+...+p^{\frac{c-1}{2}})+\frac{c+1}{2}*(1+p+...+p^{\frac{c-1}{2}})\]

\[=(1+\frac{c+1}{2})*\text{sum}(p,\frac{c-1}{2})\]

  • 若 \(c\) 为偶数数,类似的有

\[\text{sum}(p,c)=(1+\frac{p}{2})*\text{sum}(p,\frac{p}{2}-1)*p^c\]

结合快速幂,时间复杂度上可以过得去

讲了这么多(虽然是看书),我忘了告诉你这个题目我是口胡的。

Sumdiv(约数和问题)的更多相关文章

  1. poj 1845 Sumdiv 约数和定理

    Sumdiv 题目连接: http://poj.org/problem?id=1845 Description Consider two natural numbers A and B. Let S ...

  2. Sumdiv(快速幂+约数和)

    Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16244 Accepted: 4044 Description C ...

  3. 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)

    [POJ 1845] Sumdiv 用的东西挺全 最主要通过这个题学了约数和公式跟二分求等比数列前n项和 另一种小优化的整数拆分  整数的唯一分解定理: 随意正整数都有且仅仅有一种方式写出其素因子的乘 ...

  4. 【题解】POJ1845 Sumdiv(乘法逆元+约数和)

    POJ1845:http://poj.org/problem?id=1845 思路: AB可以表示成多个质数的幂相乘的形式:AB=(a1n1)*(a2n2)* ...*(amnm) 根据算数基本定理可 ...

  5. poj 1845 Sumdiv(约数和,乘法逆元)

    题目: 求AB的正约数之和. 输入: A,B(0<=A,B<=5*107) 输出: 一个整数,AB的正约数之和 mod 9901. 思路: 根据正整数唯一分解定理,若一个正整数表示为:A= ...

  6. 【POJ1845】Sumdiv(数论/约数和定理/等比数列二分求和)

    题目: POJ1845 分析: 首先用线性筛把\(A\)分解质因数,得到: \[A=p_1^{a_1}*p_2^{a_2}...*p_n^{a_n} (p_i是质数且a_i>0) \] 则显然\ ...

  7. 约数之和(POJ1845 Sumdiv)

    最近应老延的要求再刷<算法进阶指南>(不得不说这本书不错)...这道题花费了较长时间~(当然也因为我太弱了)所以就写个比较易懂的题解啦~ 原题链接:POJ1845 翻译版题目(其实是AcW ...

  8. Sumdiv 等比数列求和

    Sumdiv Sumdiv Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 15364   Accepted: 3790 De ...

  9. poj 1845 POJ 1845 Sumdiv 数学模板

    筛选法+求一个整数的分解+快速模幂运算+递归求计算1+p+p^2+````+p^nPOJ 1845 Sumdiv求A^B的所有约数之和%9901 */#include<stdio.h>#i ...

随机推荐

  1. 大数据笔记(十八)——Pig的自定义函数

    Pig的自定义函数有三种: 1.自定义过滤函数:相当于where条件 2.自定义运算函数: 3.自定义加载函数:使用load语句加载数据,生成一个bag 默认:一行解析成一个Tuple 需要MR的ja ...

  2. Linux驱动开发4——并发和竞态

    Linux系统处于一个高并发的运行环境,不管是系统调用还是中断都要求可重入,但是有一些系统资源处于临界区,因此,必须保证临界区资源访问的原子性. 对于临界区资源被占用时,发起访问的进程,有三种处理方法 ...

  3. AOF — Redis 设计与实现

    w AOF — Redis 设计与实现http://redisbook.readthedocs.io/en/latest/internal/aof.html

  4. fatal: repository 'xxxx' not found

    环境:centOS7  背景:公司代码仓库迁移,因而配置的jenkins自动打包git地址也要跟着变化. 问题描述:git clone http xxxx.git后报错: fatal: reposit ...

  5. 测开之路八十六:python操作sqlite

    创建sqlite数据库,并创建表和数据 python自带sqlite3库可以创建数据库文件 导入库:import sqlite3 创建游标,指定数据库名字:con = sqlite3.connect( ...

  6. Java Bean 使用包装类型 还是基本类型

    参考:实体类中用基本类型好,还是用包装类型好_ - 牵牛花 - 博客园 int优缺点 优点: 1.用于Bean的时候,有默认值.比如自己拼接sql增加一个User时,会方便很多,不过现在都用ORM框架 ...

  7. SpringMVC学习01——HelloSpringMvc Demo

    HelloWorldController.java文件 package com.su.controller; import org.springframework.stereotype.Control ...

  8. Spring学习03——AOP Demo

    切面类StudentServiceAspect.java package com.su.advice; import org.aspectj.lang.JoinPoint; import org.as ...

  9. Hadoop and Big Data

    Hadoop(1): HDFS Basics Hadoop(2):HDFS Block Management Hadoop(3): Prepare inputs for MapReduce mappe ...

  10. 前端003/【React + Mobx + NornJ】开发模式

    1.React + Mobx + NornJ 开发模式快速上手教程 github网址:https://github.com/joe-sky/nornj-cli/blob/master/docs/gui ...