公式: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相关推荐

  1. HDU 3501 Calculation 2

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=3501 解题思路: 小于n与n互质的数的和为Eular(n)×n/2 实现代码: #include &l ...

  2. 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明

    一.威尔逊定理 若p为质数,则 p|(p-1)!+1 亦:(p-1)! ≡ p-1 ≡ -1(mod p) 例题: HDU 2973 YAPTCHA (威尔逊定理及其逆定理) 解题报告见http:// ...

  3. 模板记录——赛前准备

    模板大法好 0.STL操作 vector 动态数组 String 字符串类型 stack 栈(先进后出) queue 队列(先进先出,公平原则) set 集合(去重性,有自动排序的功能) map 映射 ...

  4. linux中epoll原理,Linux下selectpollepoll的实现原理(一)

    最近简单看了一把 linux-3.10.25 kernel中select/poll/epoll这个几个IO事件检测API的实现.此处做一些记录. 其基本的原理是相同的,流程如下 先依次调用fd对应的s ...

  5. hdu 4493 Tutor 水题

    Tutor Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4493 D ...

  6. HDU各种比赛题题解(一)

    HDU各种比赛题题解(一) Gardon-DYGG Contest 1 HDU1178 Heritage from father[水题] - 海岛Blog - CSDN博客 HDU1181 变形课[D ...

  7. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  8. 转载:Hdu 题目分类

    原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...

  9. hdu 5439 Ponds(长春网络赛——拓扑排序+搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5438 Ponds Time Limit: 1500/1000 MS (Java/Others)     ...

  10. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

最新文章

  1. android自定义相机预览尺寸,相机在Android中,如何获得最佳尺寸,预览尺寸,图片尺寸,视图尺寸,图像扭曲...
  2. (回溯Uva524)素数环
  3. ​2022年中国医疗信息化研究报告
  4. springboot并发上传文件_springboot实现单文件和多文件上传
  5. zabbix详解(五)——zabbix配置文件详解
  6. 计算机怎么输入2的15次方,Word 2的15次方怎么打
  7. 关于 opengl3.3 - 4.1 ABO 的感触. 传统 VBO往 ABO+VBO的 代码移植
  8. 【ROM定制】Android 12 制作『MIUI官改』那点事③工具
  9. nodejs mongodb
  10. 搭建简易个人博客(一篇文章就搞定!)
  11. 2019年8月10日工作总结
  12. 小米笔记本装linux教程视频教程,小米笔记本安装Ubuntu 18.04系统后使用特殊键的方法...
  13. 小白自学C语言的准备方向(推荐)
  14. 赫兹 (单位) Hz
  15. 神码ai人工智能写作机器人_神经符号AI为我们提供具有真正常识的机器
  16. 这几道SQL面试题秒杀大部分的0年工作经验的毕业生
  17. 【系统性学习】Linux Shell常用命令
  18. JavaScript(作用域链)
  19. window.print打印
  20. 自己在“在线打字系统”完成的一次打字成绩截图记录。

热门文章

  1. 在访问RESTful接口时出现:Could not write content: No serializer found for class的问题解决小技巧收集...
  2. 嵌入式开发 ARM Cortex-M3处理器技术优势分析
  3. php基础:变量命名、传值、检测、类型转换、动态变量名
  4. 朴素贝叶斯在文本分类中的应用之 伯努利
  5. winform datagridview 打印预览
  6. 大话西游版《我叫小沈阳》
  7. 同步与异步,如何解决线程安全问题—synchronized详解,对象锁与类锁,静态与非静态同步方法详解
  8. LOJ2319「NOIP2017」列队
  9. gdi作图与系统不兼容_技术作图:技能准备amp;物理装备
  10. 微软官方pe工具_如何使用微软官方工具重装系统,简单易上手,重装Windows 10