[数学][欧拉降幂定理]Exponial
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相关推荐
- Exponial欧拉降幂
时间限制: 1 Sec 内存限制: 64 MB 提交: 255 解决: 67 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 Illustration of exponial(3) ...
- 数学--数论--广义欧拉降幂(模板)
未使用欧拉筛: 适用于较少次数计算的欧拉降幂. #include <bits/stdc++.h> #define ll long long using namespace std; ll ...
- 数学--数论--欧拉降幂--P5091 欧拉定理
题目背景 出题人也想写有趣的题面,可惜并没有能力. 题目描述 给你三个正整数,a,m,ba,m,ba,m,b,你需要求:ab mod ma^b \bmod mabmodm 输入格式 一行三个整数,a, ...
- 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
一般大佬会给你证明,而菜鸟会教你怎么使用. 先摆上公式: ab≡{abmodϕ(p)gcd(a,p)=1abgcd(a,p)≠1,b<ϕ(p)abmodϕ(p)+ϕ(p)gcd(a,p)≠1,b ...
- 扒一扒那些叫欧拉的定理们(七)——欧拉线定理的证明
早点关注我,精彩不迷路! 在前面的文章中,我们已经从空间几何欧拉定理介绍到了平面几何欧拉定理的拓展--九点圆定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(六)--九点圆定理的证明 扒一扒那些叫欧拉的 ...
- 扒一扒那些叫欧拉的定理们(十一)——欧拉数论定理
早点关注我,精彩不错过! 转眼欧拉系列已经写了10篇,进入尾声的同时也是渐入佳境.前面我们聊到的是立体和平面几何,图论,复数领域的欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(十)--群论观点下 ...
- 扒一扒那些叫欧拉的定理们(三)——简单多面体欧拉定理的抽象形式
早点关注我,精彩不迷路! 在前面的文章中,我们介绍和证明了简单多面体欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(二)--简单多面体欧拉定理的证明 扒一扒那些叫欧拉的定理们(一)--基本介绍和简 ...
- 扒一扒那些叫欧拉的定理们(六)——九点圆定理的证明
早点关注我,精彩不迷路! 在前面的文章中,我们介绍了空间几何内的欧拉定理及其扩展,上一篇中又讲到了平面几何欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(五)--平面几何欧拉定理的证明 扒一扒那些 ...
- 数论学习六之——欧拉定理(欧拉降幂)
我们现在就来学习数论四大定理中的最后一个定理,欧拉定理. 首先我们先介绍一下什么是欧拉函数,欧拉函数 φ ( n ) \varphi(n) φ(n)求的是不超过n且与n互素的正整数的个数,例如: φ ...
最新文章
- 漫画 | 没有一个程序员能拒绝这样的女朋友
- C#字符串与unicode互相转换
- 优先队列(priority_queue)的原理及用法
- 液晶电视服务器无响应时间,液晶电视响应速度时间是多少更好啊?
- 敏捷宣言和背后的原则 (Agile Manifesto and the principles behind)
- python中threading模块_举例详解Python中threading模块的几个常用方法
- [PaPaPa][需求说明书][V2.0]
- 《谭浩强C语言程序设计》 · 素数 7-3
- 【数据分析师自学系列】Kettle下载安装、Kettle环境部署
- QCC3020 单地址量产项目 功耗数据 电流测试数据
- 等比 / 等差数列求和公式
- 张铁柱-前端实现《低代码可视化编辑器》(一)思路整理 React-dnd+Ts
- js中substring()、substr() 、slice()的用法
- 【每日一题2019-11-14】-蓝桥杯 prev37 分巧克力
- 网络安全——技术与实践(第3版)课后题答案
- Mac电脑到底该用什么下载软件?Folx苹果电脑专用
- 法规标准-GB/T 39901标准解读(2021版)
- Koch Curve
- postgresql将字段为空的值替换为指定值
- 腾讯2020iOS面试题
热门文章
- linux+top写日志,Linux:日志那些命令
- 菜鸟机器学习散点总结(一)
- Ubunut14.04安装wps最新方法
- 2021年上海高考成绩分数排名查询,2021年上海高考成绩排名及一分一段表
- esp8266时钟_ESP8266(Non-OS SDK) 驱动 waveshare 2.9 寸墨水屏(二)- 程序移植、修改与测试
- java验证码Kaptcha
- 抓取网络源码python_使用Python进行网络抓取的新手指南
- maptool_如何使用MapTool构建交互式地牢RPG
- 智利可以使用支付宝嘛?_智利的水电和输电规划使用开源地理空间工具
- 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区