博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数学题【1】
阅读量:4578 次
发布时间:2019-06-08

本文共 1832 字,大约阅读时间需要 6 分钟。

题目描述

\(A^B\)的所有约数之和\(mod\mbox{ 9901 } (1≤A,B≤5*10^7)\)

  • 输入

2 3
  • 输出

15

题解

(1)  整数的唯一分解定理:

      任意正整数都有且只有一种方式写出其素因子的乘积表达式。

     \(A=(p1^{k1})*(p2^{k2})*(p3^{k3})*....*(pn^{kn})\)其中\(pi\)均为素数

(2)   约数和公式:

      对于已经分解的整数\(A=(p1^{k1})*(p2^{k2})*(p3^{k3})*....*(pn^{kn})\)

      有A的所有因子之和为

\[ S = (1+p1+p1^2+...p1^{k1}) * (1+p2+p2^2+….p2^{k2}) * .... *\] \[(1+pn+pn^2+pn^3+...pn^{kn})\]

(3)   费马小定理求逆元:
      \[a^{-1} \equiv a^{P-2} \mbox{ ( mod P ) }\]
(4)   求等比数列:
      \[(1+p1+p1^2+...p1^{B*k1})=\frac{p1^{B*k1+1}-1}{p1-1}\]
      特别的,若 \(p1-1\) 是9901的倍数有 \(p1 \equiv 1 \mbox{ ( mod P ) }\)
      所以有,\[(1+p1+p1^2+...p1^{B*k1})\equiv B*k1+1\mbox{ ( mod P ) }\]

code

#include 
#include
#define re register int#define int long longusing namespace std;inline void read(int &x){ x=0;char ch=getchar(); for(;!isdigit(ch);ch=getchar()); for(; isdigit(ch);ch=getchar()) x=(x<<1)+(x<<3)+(ch^48);}const int N=300,P=9901;int p[N],c[N],a,b,ans=1,t,inv[100000];inline void get(){ inv[1]=1; for(re i=2;i<100000;++i) inv[i]=((P-P/i)*inv[P%i])%P;}inline int ksm(int x,int y){ int res=1; for(;y;y>>=1,x=x*x%P) if(y&1) (res*=x)%=P; return res%P;}signed main(){ get(); while(scanf("%lld%lld",&a,&b)!=EOF){ t=0,ans=1; for(re i=2;i*i<=a;++i) if(a%i==0) { p[++t]=i,c[t]=0; while(a%i==0) a/=i,++c[t]; } if(a>1) p[++t]=a,c[t]=1; for(re i=1;i<=t;++i){ if((p[i]-1)%P==0) (ans*=(b*c[i]+1)%P)%=P; //没有逆元时特判 else (ans*=((ksm(p[i],c[i]*b+1)-1+P)*ksm(p[i]-1,P-2)%P))%=P; //ksm(p[i],c[i]*b+1)-1+P ,记得取模减法后%P+P再%P, //调这个用了1h+ } printf("%lld\n",ans%P); }return 0;}

转载于:https://www.cnblogs.com/Sparks-Pion/p/9778526.html

你可能感兴趣的文章
为什么要配置sdk-tools/platform-toools?
查看>>
自己动手开发更好用的markdown编辑器-07(扩展语法)
查看>>
队列的循环队列
查看>>
程序中的日期格式
查看>>
大众点评CAT错误总结以及解决思路
查看>>
从0开始学爬虫3之xpath的介绍和使用
查看>>
vim下正则表达式的非贪婪匹配
查看>>
一个python的计算熵(entropy)的函数
查看>>
spring源码学习——spring整体架构和设计理念
查看>>
模拟window系统的“回收站”
查看>>
报文格式【定长报文】
查看>>
RDLC报表钻取空白页问题
查看>>
多路电梯调度的思想
查看>>
jQuery-对Select的操作
查看>>
过滤器、监听器、拦截器的区别
查看>>
为什么要进行需求分析?通常对软件系统有哪些需求?
查看>>
一些模板
查看>>
jquery和dom元素相互转换
查看>>
放大的X--HDOJ-201307292012
查看>>
题目831-签到-nyoj-20140818
查看>>