题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2685

题意:求gcd(a^m - 1, a^n - 1) mod k

思路:gcd(a^m - 1, a^n - 1) = a^gcd(m, n) - 1

code:

 #include <stdio.h>

 int gcd(int a, int b)
{
return !b ? a : gcd(b, a%b);
} int mod_pow(int a, int x, int mod)
{
int tmp = a;
int ret = ;
while(x) {
if (x & ) {
ret = ret * tmp % mod;
}
tmp = tmp * tmp % mod;
x >>= ;
} return ret;
} int main()
{
int t, a, m, n, k;
scanf("%d", &t);
while (t--) {
scanf("%d %d %d %d", &a, &m, &n, &k);
int d = gcd(m, n);
int ans = mod_pow(a, d, k);
printf("%d\n", (ans - + k) % k);
} return ;
}

最新文章

  1. Eclipse 创建maven项目
  2. 【Java】一个小程序,计算它包含的代码所需的耗时
  3. 4Web镇之旅:开始链接
  4. PHP序列化以及反序列化系列[1]--PHP序列化格式的写法
  5. Oracle数据库中实现mysql数据库中auto-increment功能
  6. ssh docker container
  7. UVA 11624 Fire!(二次BFS)
  8. js简易猜数字
  9. python解析xml
  10. 获取所有树叶子节点 注册添加事件 if ($(node).tree(&#39;isLeaf&#39;, node.target)) 是否叶子节点
  11. C语言之while和do-while
  12. 新概念英语(1-69)The car race
  13. Web API之基于H5客户端分段上传大文件
  14. Oracle查询数据库中所有表的记录数
  15. Nginx+Tomcat-cluster构建
  16. 选择排序算法的JAVA实现
  17. byte[]-&gt;new String(byte[]) -&gt; getByte()引发的不一致问题
  18. Xamarin adventures – Differences between iOS simulator and device
  19. [转]C++之运算符重载(1)
  20. Inflater与findViewById()区别

热门文章

  1. MVC模式下My97DatePicker日期控件引用注意事项
  2. oracle参数文件spfile和pfile
  3. 获得android应用的版本号
  4. win10系统安装 VS 2015 安装包下载
  5. BF算法(朴素的模式匹配算法)
  6. BigDecimal类对象的使用详解
  7. Python入门之中文乱码
  8. SQL Server 从数据库快照还原数据库
  9. Oracle EBS-SQL (WIP-14):检查车间需求与BOM差异对照.sql
  10. Oracle EBS-SQL (WIP-5):检查非标任务本身选上了MRP净值.sql