http://acm.hdu.edu.cn/showproblem.php?pid=2837

  1. // a^b%p=a^(b%phi(p)+phi(p))%p
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<algorithm>
  6. #include<bitset>
  7. #include<iomanip>
  8.  
  9. using namespace std;
  10. #define INT long long
  11.  
  12. INT euler( int n)
  13. {
  14. INT ret=1,i;
  15. for (i=2;i*i<=n;i++)
  16. if (n%i==0){
  17. n/=i,ret*=i-1;
  18. while (n%i==0)
  19. n/=i,ret*=i;
  20. }
  21. if (n>1)
  22. ret*=n-1;
  23. return ret;
  24. }
  25.  
  26. INT Pow( INT a , INT b , INT m )
  27. {
  28. INT ans = 1 ;
  29. while( b )
  30. {
  31. if( b & 1 )
  32. {
  33. ans = ans * a % m ;
  34. }
  35. a *= a ;
  36. a %= m ;
  37. b >>= 1 ;
  38. }
  39. return ans % m ;
  40. }
  41.  
  42. INT fun2( int a , int b , int m )
  43. {
  44. INT ans = 1 ;
  45. for( int i = 1 ; i <= b ; ++i )
  46. {
  47. ans *= a ;
  48. if( ans >= m )
  49. return ans ;
  50. }
  51. return ans ;
  52. }
  53.  
  54. INT fun1( int n , int m )
  55. {
  56. INT phi = euler( m ) ;
  57. if( n < 10 )
  58. return n ;
  59. INT a = fun1( n / 10 , phi ) ;
  60. INT b = fun2( n % 10 , a , m ) ;
  61. if( b >= m )
  62. {
  63. INT ans = Pow( n % 10 , a + phi , m ) ;
  64. if( ans == 0 )
  65. ans += m ;
  66. return ans ;
  67. }
  68. return b ;
  69. }
  70.  
  71. int main()
  72. {
  73. int Case , n , m , p ;
  74. cin >> Case ;
  75. while( Case-- )
  76. {
  77. cin >> n >> m ;
  78. INT ans = fun1( n , m ) % m ;
  79. cout << ans << endl ;
  80. }
  81. return 0 ;
  82. }

hdu2837数论的更多相关文章

  1. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

  2. NOIP2014 uoj20解方程 数论(同余)

    又是数论题 Q&A Q:你TM做数论上瘾了吗 A:没办法我数论太差了,得多练(shui)啊 题意 题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, ...

  3. 数论学习笔记之解线性方程 a*x + b*y = gcd(a,b)

    ~>>_<<~ 咳咳!!!今天写此笔记,以防他日老年痴呆后不会解方程了!!! Begin ! ~1~, 首先呢,就看到了一个 gcd(a,b),这是什么鬼玩意呢?什么鬼玩意并不 ...

  4. hdu 1299 Diophantus of Alexandria (数论)

    Diophantus of Alexandria Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  5. 【BZOJ-4522】密钥破解 数论 + 模拟 ( Pollard_Rho分解 + Exgcd求逆元 + 快速幂 + 快速乘)

    4522: [Cqoi2016]密钥破解 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 290  Solved: 148[Submit][Status ...

  6. bzoj2219: 数论之神

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  7. hdu5072 Coprime (2014鞍山区域赛C题)(数论)

    http://acm.hdu.edu.cn/showproblem.php?pid=5072 题意:给出N个数,求有多少个三元组,满足三个数全部两两互质或全部两两不互质. 题解: http://dty ...

  8. ACM: POJ 1061 青蛙的约会 -数论专题-扩展欧几里德

    POJ 1061 青蛙的约会 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%lld & %llu  Descr ...

  9. 数论初步(费马小定理) - Happy 2004

    Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2 ...

随机推荐

  1. axure团队合作开发原型图

    谁是人画或其他原型图的头,但在基本制度的发展时,.我们分配一些人画的原型,其他部分干. 再画一个原型不再是一个人画,一起画,假设大家都各自画自己那一部分.最后再由一个人来整合的画.是非常麻烦. 咱平时 ...

  2. DevExpress中获取RichTextEdit中RichEditControl的两种方式

    方式一: var rte = sender as RichTextEdit; control = rte.Controls[] as RichEditControl; 方式二: PropertyInf ...

  3. mysql中国的内容php网页乱码问题

    1.更改mysql编码在数据库 character_set_server=utf8 init_connect='SET NAMES utf8' 加入这两行 2.又第一次启动mysql数据库 版权声明: ...

  4. HDU 4006 The kth great number AVL解

    提供动态更新数据.第实时QK大量的值什么? 使用AVL统计数据结构做,比较先进的数据结构的内容. 不知道给出的数据为准值是否有反复.下面的程序是因为我能够处理重复数据出现的情况下,. 了repeat的 ...

  5. 经典HTML5小游戏 支持各种浏览器 (围住神经猫)

    源码地址: http://files.cnblogs.com/files/liujing379069296/MyCat.rar 插件地址:http://files.cnblogs.com/files/ ...

  6. C语言编写Windows服务程序

    原文:C语言编写Windows服务程序 #include <Windows.h> #include <stdio.h> #define SLEEP_TIME 5000 // 间 ...

  7. 多线程学习之一独木桥模式Single Threaded Execution Pattern

    Single Threaded Execution Pattern[独木桥模式] 一:single threaded execution pattern的参与者--->SharedResourc ...

  8. winsock2之最简单的win socket编程

    原文:winsock2之最简单的win socket编程 server.cpp #include <WINSOCK2.H> #include <stdio.h> #pragma ...

  9. 【phpMyAdmin】更改配置文件连接到其他server

    默认phpMyAdmin安装完毕后对机器的访问mysql,但有时我们需要访问其它server的mysql数据库,所以我们需要配置. 真,phpMyAdmin已经为我们做了配置的选项.可是须要我们进行一 ...

  10. ios基金会-XCode温馨提示

    (一个)代号规格pragma mark 1.定义 #pragma 开头的代码是一条编译器指令,是一个特定于程序或编译器的指令. 不一定适用于其他编译器或其他环境.假设编译器不能识别该指令.则会将其忽略 ...