hdu 2837 Calculation
公式:a^b%p=a^(b%phi(p)+phi(p))%p b>=phi(p)
1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<iomanip> 5 #include<cmath> 6 #include<string> 7 #include<vector> 8 #define ll __int64 9 using namespace std; 10 ll euler(int n) 11 { 12 ll ans=1; 13 for(int i=2;i*i<=n;i++) 14 { 15 if(n%i==0) 16 { 17 ans*=i-1; 18 n/=i; 19 while(n%i==0) 20 { 21 ans*=i; 22 n/=i; 23 } 24 } 25 } 26 if(n>1) ans*=n-1; 27 return ans; 28 } 29 ll pows(ll a,ll b,ll m) 30 { 31 ll ans=1; 32 while(b) 33 { 34 if(b&1) ans=(ans*a)%m; 35 b>>=1; 36 a=(a*a)%m; 37 } 38 return ans%m; 39 } 40 ll cmp(int a,int b,int m) 41 { 42 ll ans=1; 43 for(int i=1;i<=b;i++) 44 { 45 ans*=a; 46 if(ans>=m) return ans; 47 } 48 return ans; 49 } 50 ll fun(int n,int m) 51 { 52 ll phi=euler(m); 53 if(n<10) return n; 54 ll a=fun(n/10,phi); 55 ll b=cmp(n%10,a,m); 56 if(b>=m) 57 { 58 ll ans=pows(n%10,a+phi,m); 59 if(ans==0) 60 ans+=m; 61 return ans; 62 } 63 return b; 64 } 65 int main() 66 { 67 int t,i,j,m,n; 68 cin>>t; 69 while(t--) 70 { 71 cin>>n>>m; 72 ll ans=fun(n,m)%m; 73 printf("%I64d\n",ans); 74 } 75 return 0; 76 }
View Code
转载于:https://www.cnblogs.com/xin-hua/p/3207057.html
hdu 2837 Calculation相关推荐
- HDU 3501 Calculation 2
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=3501 解题思路: 小于n与n互质的数的和为Eular(n)×n/2 实现代码: #include &l ...
- 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明
一.威尔逊定理 若p为质数,则 p|(p-1)!+1 亦:(p-1)! ≡ p-1 ≡ -1(mod p) 例题: HDU 2973 YAPTCHA (威尔逊定理及其逆定理) 解题报告见http:// ...
- 模板记录——赛前准备
模板大法好 0.STL操作 vector 动态数组 String 字符串类型 stack 栈(先进后出) queue 队列(先进先出,公平原则) set 集合(去重性,有自动排序的功能) map 映射 ...
- linux中epoll原理,Linux下selectpollepoll的实现原理(一)
最近简单看了一把 linux-3.10.25 kernel中select/poll/epoll这个几个IO事件检测API的实现.此处做一些记录. 其基本的原理是相同的,流程如下 先依次调用fd对应的s ...
- hdu 4493 Tutor 水题
Tutor Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4493 D ...
- HDU各种比赛题题解(一)
HDU各种比赛题题解(一) Gardon-DYGG Contest 1 HDU1178 Heritage from father[水题] - 海岛Blog - CSDN博客 HDU1181 变形课[D ...
- HDU题目分类大全【大集合】
基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.105 ...
- 转载:Hdu 题目分类
原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...
- hdu 5439 Ponds(长春网络赛——拓扑排序+搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5438 Ponds Time Limit: 1500/1000 MS (Java/Others) ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
最新文章
- android自定义相机预览尺寸,相机在Android中,如何获得最佳尺寸,预览尺寸,图片尺寸,视图尺寸,图像扭曲...
- (回溯Uva524)素数环
- ​2022年中国医疗信息化研究报告
- springboot并发上传文件_springboot实现单文件和多文件上传
- zabbix详解(五)——zabbix配置文件详解
- 计算机怎么输入2的15次方,Word 2的15次方怎么打
- 关于 opengl3.3 - 4.1 ABO 的感触. 传统 VBO往 ABO+VBO的 代码移植
- 【ROM定制】Android 12 制作『MIUI官改』那点事③工具
- nodejs mongodb
- 搭建简易个人博客(一篇文章就搞定!)
- 2019年8月10日工作总结
- 小米笔记本装linux教程视频教程,小米笔记本安装Ubuntu 18.04系统后使用特殊键的方法...
- 小白自学C语言的准备方向(推荐)
- 赫兹 (单位) Hz
- 神码ai人工智能写作机器人_神经符号AI为我们提供具有真正常识的机器
- 这几道SQL面试题秒杀大部分的0年工作经验的毕业生
- 【系统性学习】Linux Shell常用命令
- JavaScript(作用域链)
- window.print打印
- 自己在“在线打字系统”完成的一次打字成绩截图记录。
热门文章
- 在访问RESTful接口时出现:Could not write content: No serializer found for class的问题解决小技巧收集...
- 嵌入式开发 ARM Cortex-M3处理器技术优势分析
- php基础:变量命名、传值、检测、类型转换、动态变量名
- 朴素贝叶斯在文本分类中的应用之 伯努利
- winform datagridview 打印预览
- 大话西游版《我叫小沈阳》
- 同步与异步,如何解决线程安全问题—synchronized详解,对象锁与类锁,静态与非静态同步方法详解
- LOJ2319「NOIP2017」列队
- gdi作图与系统不兼容_技术作图:技能准备amp;物理装备
- 微软官方pe工具_如何使用微软官方工具重装系统,简单易上手,重装Windows 10