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