http://acm.hdu.edu.cn/showproblem.php?pid=1452

原来真心没见过这种题,不会做,非常帅

gcd(a,b)==1 && s(a,b)==s(a)*s(b)满足这种条件的s叫做积性函数,本题求的因子和就是一个积性函数

接着有一个结论

if(prime[p])s(p^n)=1+p^1+p^2+p^n=(p^(n+1)-1)/(p-1)

s(2004^n)=s(2^(2n))*s(3^n)*s(167^n)

其中,167和22关于29同余

所以,s(2004^n)=s(2^(2n))*s(3^n)*s(2^n)

a=s(2^(2n))=(2^(2n+1)-1)

b=s(3^n)=(3^(n+1)-1)/2

c=s(22^n)=(22^(n+1)-1)/21

数太大,每步求余,除法求余的规则是,除以一个数求余的结果和乘以除数的乘法逆元的求余结果相同

求出2和21的乘法逆元这道题就做完了

#include <iostream>
#include <cstring>
using namespace std ;
int qpow(int a,int b)
{
int ans=,buff=a ;
while(b)
{
if(b&)ans=ans*buff% ;
buff=buff*buff% ;
b>>= ;
}
return ans ;
}
int main()
{
int x ;
while(~scanf("%d",&x),x)
{
int a=(qpow(,*x+)-)% ;
int b=(qpow(,x+)-)*(-)% ;
int c=(qpow(,x+)-)*(-)% ;
printf("%d\n",a*b*c%) ;
}
return ;
}

扩展欧几里得算法求乘法逆元模板

int Extend_Eulid(int d,int f)
{
int x1,x2,x3,y1,y2,y3 ;
x1=,x2=,x3=f,y1=,y2=,y3=d ;
while(y3 && y3!=)
{
int q=x3/y3 ;
int t1,t2,t3 ;
t1=x1-q*y1,t2=x2-q*y2,t3=x3-q*y3 ;
x1=y1,x2=y2,x3=y3 ;
y1=t1,y2=t2,y3=t3 ;
}
if(!y3)return - ;
return y2 ;
}

HDU 1452的更多相关文章

  1. HDU 1452 Happy 2004 (逆元+快速幂+积性函数)

    G - Happy 2004 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Subm ...

  2. HDU 1452 欧拉定理

    让你求$2004^x$所有因子之和,因子之和函数是积性函数$\sigma(n)=\sum_{d|n}d=\prod_{i=0}^{m}(\sum_{j=0}^{k_i}{P_i^{j}})$可用二项式 ...

  3. HDU 1452 (约数和+乘法逆元)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1452 题目大意:求2004^X所有约数和,结果mod 29. 解题思路: ①整数唯一分解定理: 一个 ...

  4. hdu 1452 Happy 2004 膜拜这推导过程

    Happy 2004 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  5. HDU 1452 Happy 2004(因子和的积性函数)

    题目链接 题意 : 给你一个X,让你求出2004的X次方的所有因子之和,然后对29取余. 思路 : 原来这就是积性函数,点这里这里这里,这里讲得很详细. 在非数论的领域,积性函数指所有对于任何a,b都 ...

  6. hdu 1452 Happy 2004

    因子和: 的因子是1,2,3,6; 6的因子和是 s(6)=1+2+3+6=12; 的因子是1,2,4,5,10,20; 20的因子和是 s(20)=1+2+4+5+10+20=42; 的因子是1,2 ...

  7. Hdu 1452 Happy 2004(除数和函数,快速幂乘(模),乘法逆元)

    Problem Description Considera positive integer X,and let S be the sum of all positive integer diviso ...

  8. HDU 1452 Happy 2004(因数和+费马小定理+积性函数)

    Happy 2004 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  9. hdu 1452(因子和+逆元)

    Happy 2004 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

随机推荐

  1. java 二维码生成

    直接上代码: 二维码生成核心类: package com.bbkj.wechat.tool; import java.awt.image.BufferedImage; import java.io.F ...

  2. Caffe cpu版本 Linux配置命令及搭建

    Caffee 安装过程 1.安装依赖包 $ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-de ...

  3. SSM 框架搭建 idea环境

    参考: https://www.cnblogs.com/toutou/p/ssm_springmvc.html https://www.cnblogs.com/toutou/p/ssm_springm ...

  4. jQuery 获取、设置表单元素的值

    获取表单元素值: 文本框,文本区域: $("#txt").attr("value"): 多选框 checkbox:$("#checkbox_id&qu ...

  5. bzoj1005: [HNOI2008]明明的烦恼 prufer序列

    https://www.lydsy.com/JudgeOnline/problem.php?id=1005 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的 ...

  6. Seaborn-05-Pairplot多变量图

    转自:http://www.jianshu.com/p/6e18d21a4cad

  7. jqPaginator分页(ajax用法和form表单提交用法)

    一般使用方法 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  8. 转 Java对日期Date类进行加减运算一二三

    请移步,https://blog.csdn.net/hacker_lees/article/details/74351838 ,感谢博主分享

  9. OpenGL全景视频

    全景视频其实在实现上和一般的视频播放基本差不多,解码可以用ffmpeg,只是对解码后的图片在绘制的时候要绘制在一个球上(我这里是球,好像有说有的格式要绘制在四面体上的,美做深入研究),而不是画在一个表 ...

  10. vue的slot的使用问题

    slot的使用问题 根据官方文档来说,有三种使用方式 https://cn.vuejs.org/v2/guide/components.html#%E4%BD%BF%E7%94%A8%E6%8F%92 ...