博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nyoj1235A/B Problem逆元
阅读量:1872 次
发布时间:2019-04-26

本文共 1279 字,大约阅读时间需要 4 分钟。

nyoj1235A/B Problem

时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述

已知:

1. n = (A % 9973);2. gcd(B, 9973) = 1;

计算:

(A / B) % 9973

输入

数据的第一行是一个T,表示有T组数据.
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9).
输出
对应每组数据输出(A / B) % 9973.
样例输入
2
1000 53
87 123456789
样例输出
7922
6060

#include
const int mod = 9973;//(A / B) % mod;//n = A % mod;//b为B关于mod的逆元 //b = B^(mod-2);//(A / B) % mod = (A * b) % mod = (A%mod * b%mod) % mod = (n * b%mod) % mod //https://www.cnblogs.com/linyujun/p/5194184.html//https://www.cnblogs.com/zzqc/p/7192436.html //http://blog.csdn.net/f_zyj/article/details/71156809void extendGcd(long long a, long long b, long long * s, long long * t);long long modReverse(long long a, long long n);int main() { int times; long long n, B; scanf("%d", ×); while (times--) { scanf("%lld%lld", &n, &B); long long b = modReverse(B, mod); printf("%d\n", (n * b) % mod); } return 0;}void extendGcd(long long a, long long b, long long * s, long long * t) { if (b == 0) { *s = 1, *t = 0; }else { long long next_s, next_t; extendGcd(b, a % b, &next_s, &next_t); *s = next_t, *t = next_s - a/b * next_t; }}long long modReverse(long long a, long long n) { //a与n互质时,才存在a关于n逆元 long long s, t; extendGcd(a, n, &s, &t); return (s + n) % n;//防止s可能为负数}
你可能感兴趣的文章
人工智能药物研发
查看>>
【超级干货+福利】AIDD最全面的学习教程
查看>>
最新通知:AIDD与网络药理学资料大全
查看>>
Lammps分子动力学与第一性原理材料模拟及催化
查看>>
实习生小白的日常
查看>>
实习小白的日常(4)
查看>>
微信扫码登录验证PHP代码(不用开放平台)
查看>>
CH554E USB单片机 10引脚小封装低成本USB方案
查看>>
通信猫调试软件(WINDOWS单文件绿色版 串口/并口/USB/TCP/UDP/HTTP/二维码。。。)
查看>>
windows MQTT客户端
查看>>
LINUX下挂载(mount)查看树莓派镜像文件
查看>>
1元钱的超低成本单芯片USB单片机方案
查看>>
单片机/树莓派扩展双串口(TTL和RS485)
查看>>
基于CH568芯片的SATA电子盘方案
查看>>
linux下C语言判断网络是否连接
查看>>
2021/4/27课堂总结和作业
查看>>
2021.4.28课堂总结和作业
查看>>
2021.4.29课堂总结
查看>>
2021.4.30课堂总结和作业
查看>>
需要吗?2000GB+学习视频教程 面试资料免费下载
查看>>