ACM: Happy 2004-数论专题-因子求和-快速幂
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
Take X = 1 for an example. The positive integer divisors of 2004^1 are 1, 2, 3, 4, 6, 12, 167, 334, 501, 668, 1002 and 2004. Therefore S = 4704 and S modulo 29 is equal to 6.
Input
A test case of X = 0 indicates the end of input, and should not be processed.
Output
Sample Input
1
10000
0
Sample Output
6
10
/*/
题意:
求2004^x的所有的因子和然后 mod 29。 一开始没有头绪,后面百度了下,N的因子和是积性函数,所以就开始用积性函数的方法解题。 积性函数 : 当gcd(a,b)=1时 s(a*b)=s(a)*s(b);
如果p是素数[或素数取X模后的数] s(p^n)=1+p+p^2+...+p^n= (p^(n+1)-1) /(p-1)
/*/ /*/ 2004=2*2*3*167 质因子 /*/ /*/ σ(2004^x)=σ(2^2x)*σ(3^x)*σ(167^x) mod 29 积性函数。 /*/ /*/ 167%29 = 22 /*/ /*/ σ(2004^x)=σ(2^2x)*σ(3^x)*σ(22^x) mod 29 /*/ /*/ σ(2^2x)= (2^(2x+1)-1)/(2-1)=(2^(2x+1)-1)/1 /*/ /*/ σ(3^x) = (3^(x+1)-1)/(3-1) =(3^(x+1)-1) /2 /*/ /*/ σ(22^x)=(22^(x+1)-1)/(22-1)=(22^(x+1)-1)/21 /*/ /*/ σ(2004^x)=(2^(2x+1)-1)*(3^(x+1)-1)/2*(22^(x+1)-1)/21 /*/ /*/ 1/2 对于29的逆元x=15 1=2*15 -29*1 /*/ /*/ 1/21对于29的逆元x=18 1=21*18-29*13 /*/ /*/ σ(2004^x)=((2^(2x+1)-1)*(3^(x+1)-1)*15*(22^(x+1)-1)*18)%29 /*/ /*/ 然后开始用快速幂求解。 /*/ /*/ 这个题目的重点在在于这个数学推导过程。 /*/ // AC代码:
#include"cmath"
#include"string"
#include"cstdio"
#include"cstring"
#include"iostream"
#include"algorithm"
using namespace std;
typedef long long LL; LL mod_pow(LL x,LL y,LL p) {
LL rt=1;
LL t=x;
while(y) {
if(y&1)rt=(rt*t)%p;
t=t*t%p;
y>>=1;
}
return rt;
} int main() {
LL x,ans;
while(~scanf("%I64d",&x)) {
if(x==0)break;
/*/ σ(2004^x)=((2^(2x+1)-1)*(3^(x+1)-1)*15*(22^(x+1)-1)*18)%29 /*/
ans=1;
ans*=(mod_pow(2,2*x+1,29)-1)%29;
ans*=(mod_pow(3,x+1,29)-1)*15%29;
ans*=(mod_pow(22,x+1,29)-1)*18%29;
printf("%I64d\n",ans%29);
}
return 0;
}
ACM: Happy 2004-数论专题-因子求和-快速幂的更多相关文章
- 从BZOJ2242看数论基础算法:快速幂,gcd,exgcd,BSGS
LINK 其实就是三个板子 1.快速幂 快速幂,通过把指数转化成二进制位来优化幂运算,基础知识 2.gcd和exgcd gcd就是所谓的辗转相除法,在这里用取模的形式体现出来 \(gcd(a,b)\) ...
- [原]sdut2605 A^X mod P 山东省第四届ACM省赛(打表,快速幂模思想,哈希)
本文出自:http://blog.csdn.net/svitter 题意: f(x) = K, x = 1 f(x) = (a*f(x-1) + b)%m , x > 1 求出( A^(f(1) ...
- Description has only two Sentences(欧拉定理 +快速幂+分解质因数)
Description has only two Sentences Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- ACM&OI 基础数论算法专题
ACM&OI 基础数学算法专题 一.数论基础 质数及其判法 (已完结) 质数的两种筛法 (已完结) 算数基本定理与质因数分解 (已完结) 约数与整除 (已完结) 整除分块 (已完结) 最大公约 ...
- ACM数论-快速幂
ACM数论——快速幂 快速幂定义: 顾名思义,快速幂就是快速算底数的n次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高. 原理: 以下以求a的b次方来介绍: 把b转换成 ...
- ACM学习历程—HDU5667 Sequence(数论 && 矩阵乘法 && 快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=5667 这题的关键是处理指数,因为最后结果是a^t这种的,主要是如何计算t. 发现t是一个递推式,t(n) = c ...
- ACM数论之旅2---快速幂,快速求a^b((ノ`Д´)ノ做人就要坚持不懈)
a的b次方怎么求 pow(a, b)是数学头文件math.h里面有的函数 可是它返回值是double类型,数据有精度误差 那就自己写for循环咯 LL pow(LL a, LL b){//a的b次方 ...
- acm数论之旅(转载) -- 快速幂
0和1都不是素数,也不是合数. a的b次方怎么求 pow(a, b)是数学头文件math.h里面有的函数 可是它返回值是double类型,数据有精度误差 那就自己写for循环咯 LL pow(LL a ...
- Hdu 1452 Happy 2004(除数和函数,快速幂乘(模),乘法逆元)
Problem Description Considera positive integer X,and let S be the sum of all positive integer diviso ...
随机推荐
- wifi 4次握手
转自:http://zhaoxiaobu.blog.51cto.com/878176/407130/ 不管是用WEP加密,还是用WPA,一般如果我们要和AP建立一个连接,要经过两个阶段认证(Authe ...
- Gradle使用指南
Gradle Plugin User Guide - Android Studio Project Sitehttp://tools.android.com/tech-docs/new-build-s ...
- DDD的思考
概述 DDD领域驱动设计,它是对面向对象的的分析和设计(OOAD,Object Orient Analysis Design)的一个补充,对技术框架进行了分层规划,同时对每个类进行了策略和类型划分.领 ...
- 【leetcode】plus One
问题描述: Given a non-negative number represented as an array of digits, plus one to the number. The dig ...
- hdu 4046 2011北京赛区网络赛G 线段树 ***
还带这么做的,卧槽,15分钟就被A了的题,居然没搞出来 若某位是1,则前两个为wb,这位就是w #include<cstdio> #include<cstring> #defi ...
- 不通过App Store实现ios应用分发下载安装
最近公司的项目准备着手宣传工作了,宣传手册上要印制App的下载地址二维码,但是客户端应用还未上线,需要一种临时的方案解决应用分发下载问题,通常ios应用必须通过苹果应用商店才能下载安装,但是也可以看到 ...
- Linggle: 英语写作学习搜索引擎
Linggle 搜索引擎是一个可用于英语写作的语法.句子工具,可帮助学习者分析更准确的英文写作建议,能够根据词性来推测短句和句子,可精准的分享出完整英文句子如何撰写. Linggle 是台湾学术团队研 ...
- 用Access作为后台数据库支撑。
/// <summary> /// 读取Excel文档 /// </summary> /// <param name="Path">文件名称&l ...
- c++ 左值 和 右值
什么是lvalue, 什么是rvalue? lvalue: 具有存储性质的对象,即lvalue对象,是指要实际占用内存空间.有内存地址的那些实体对象,例如:变量(variables).函数.函数指针等 ...
- 【项目经验】 Html Select 遇上 Easyui
一.背景: 当我在做课表选择触发事件的时候,我发现了一个问题,就是我们直接用的easyui-combobox里面的的绑定事件(onchange)貌似触发不了,这是为什么呢? 二.结论及方法 .原始方法 ...