Exponial

题目

http://exam.upc.edu.cn/problem.php?cid=1512&pid=4

欧拉降幂定理:当b>phi(p)时,有a^b%p = a^(b%phi(p)+phi(p))%p

这题做的难受....看到题目我就猜到肯定用到欧拉降幂,然后就毫无目的地找规律。然后发现不同地取欧拉函数会变成0,然后内心毫无波动.....可能不怎么会递归

思路:当n>=6时,欧拉降幂定理一定适用,因为f(5)>1e9,也就是一定有欧拉降幂定理的b>phi(p)这个条件,所以f(n)%p=n^f(n-1)%p=n^(f(n-1)%phi(p)+phi(p))%p;再递归地求f(n-1)%phi(p)
当n<=5时,f(n)%p=n^f(n-1)%p,因为不一定有f(n-1)>phi(p)成立,所以不能用欧拉降幂定理求,直接手动求出f(n)%p即可;
从1e9递归到5很慢,但当p=1时,可以直接返回f(n)%p=0而不用递归到下一层;
AC代码:

#include <cstdio>
typedef long long ll;ll phi(ll x){ll res=x;for(ll i=2; i*i<=x; ++i){if(x%i==0){res=res-res/i;while(x%i==0)x/=i;}}if(x>1)res=res-res/x;return res;
}
ll qpow(ll a,ll n,ll mod){ll res=1;while(n){if(n&1){res*=a;res%=mod;}n>>=1;a=(a*a)%mod;}return res;
}
ll solve(ll n,ll m)
{if(m==1) return 0;if(n==1) return 1;else if(n==2) return 2%m;else if(n==3) return 9%m;else if(n==4) return qpow(4,9,m);ll tem=phi(m);return qpow(n,solve(n-1,tem)+tem,m);
}
int main()
{//printf("%lld\n",phi(1000000));ll n,m;while(scanf("%lld%lld",&n,&m)!=EOF){printf("%lld\n",solve(n,m));}return 0;
}

好久没写博客.....自己太菜要努力鸭

转载于:https://www.cnblogs.com/smallocean/p/9749035.html

[数学][欧拉降幂定理]Exponial相关推荐

  1. Exponial欧拉降幂

    时间限制: 1 Sec  内存限制: 64 MB 提交: 255  解决: 67 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 Illustration of exponial(3) ...

  2. 数学--数论--广义欧拉降幂(模板)

    未使用欧拉筛: 适用于较少次数计算的欧拉降幂. #include <bits/stdc++.h> #define ll long long using namespace std; ll ...

  3. 数学--数论--欧拉降幂--P5091 欧拉定理

    题目背景 出题人也想写有趣的题面,可惜并没有能力. 题目描述 给你三个正整数,a,m,ba,m,ba,m,b,你需要求:ab mod ma^b \bmod mabmodm 输入格式 一行三个整数,a, ...

  4. 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)

    一般大佬会给你证明,而菜鸟会教你怎么使用. 先摆上公式: ab≡{abmodϕ(p)gcd(a,p)=1abgcd(a,p)≠1,b<ϕ(p)abmodϕ(p)+ϕ(p)gcd(a,p)≠1,b ...

  5. 扒一扒那些叫欧拉的定理们(七)——欧拉线定理的证明

    早点关注我,精彩不迷路! 在前面的文章中,我们已经从空间几何欧拉定理介绍到了平面几何欧拉定理的拓展--九点圆定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(六)--九点圆定理的证明 扒一扒那些叫欧拉的 ...

  6. 扒一扒那些叫欧拉的定理们(十一)——欧拉数论定理

    早点关注我,精彩不错过! 转眼欧拉系列已经写了10篇,进入尾声的同时也是渐入佳境.前面我们聊到的是立体和平面几何,图论,复数领域的欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(十)--群论观点下 ...

  7. 扒一扒那些叫欧拉的定理们(三)——简单多面体欧拉定理的抽象形式

    早点关注我,精彩不迷路! 在前面的文章中,我们介绍和证明了简单多面体欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(二)--简单多面体欧拉定理的证明 扒一扒那些叫欧拉的定理们(一)--基本介绍和简 ...

  8. 扒一扒那些叫欧拉的定理们(六)——九点圆定理的证明

    早点关注我,精彩不迷路! 在前面的文章中,我们介绍了空间几何内的欧拉定理及其扩展,上一篇中又讲到了平面几何欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(五)--平面几何欧拉定理的证明 扒一扒那些 ...

  9. 数论学习六之——欧拉定理(欧拉降幂)

    我们现在就来学习数论四大定理中的最后一个定理,欧拉定理. 首先我们先介绍一下什么是欧拉函数,欧拉函数 φ ( n ) \varphi(n) φ(n)求的是不超过n且与n互素的正整数的个数,例如: φ ...

最新文章

  1. 漫画 | 没有一个程序员能拒绝这样的女朋友
  2. C#字符串与unicode互相转换
  3. 优先队列(priority_queue)的原理及用法
  4. 液晶电视服务器无响应时间,液晶电视响应速度时间是多少更好啊?
  5. 敏捷宣言和背后的原则 (Agile Manifesto and the principles behind)
  6. python中threading模块_举例详解Python中threading模块的几个常用方法
  7. [PaPaPa][需求说明书][V2.0]
  8. 《谭浩强C语言程序设计》 · 素数 7-3
  9. 【数据分析师自学系列】Kettle下载安装、Kettle环境部署
  10. QCC3020 单地址量产项目 功耗数据 电流测试数据
  11. 等比 / 等差数列求和公式
  12. 张铁柱-前端实现《低代码可视化编辑器》(一)思路整理 React-dnd+Ts
  13. js中substring()、substr() 、slice()的用法
  14. 【每日一题2019-11-14】-蓝桥杯 prev37 分巧克力
  15. 网络安全——技术与实践(第3版)课后题答案
  16. Mac电脑到底该用什么下载软件?Folx苹果电脑专用
  17. 法规标准-GB/T 39901标准解读(2021版)
  18. Koch Curve
  19. postgresql将字段为空的值替换为指定值
  20. 腾讯2020iOS面试题

热门文章

  1. linux+top写日志,Linux:日志那些命令
  2. 菜鸟机器学习散点总结(一)
  3. Ubunut14.04安装wps最新方法
  4. 2021年上海高考成绩分数排名查询,2021年上海高考成绩排名及一分一段表
  5. esp8266时钟_ESP8266(Non-OS SDK) 驱动 waveshare 2.9 寸墨水屏(二)- 程序移植、修改与测试
  6. java验证码Kaptcha
  7. 抓取网络源码python_使用Python进行网络抓取的新手指南
  8. maptool_如何使用MapTool构建交互式地牢RPG
  9. 智利可以使用支付宝嘛?_智利的水电和输电规划使用开源地理空间工具
  10. 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区