您的位置:首页 > 其它

HDU 1576 A/B

2016-07-11 15:53 501 查看
Problem Description

要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。

【题目分析】

其实就是用拓展的欧几里得算法求一下乘法逆元就可以了。

【代码】

#include <cstdio>
inline void exgcd(int a,int b,int &x,int &y)
{
if (!b) {x=1,y=0;return ;}
exgcd(b,a%b,x,y);
int t=x; x=y; y=t-a/b*y;
}
int main()
{
int T,x,y;
scanf("%d",&T);
while (T--)
{
int n,b;
scanf("%d%d",&n,&b);
exgcd(b,9973,x,y);
printf("%d\n",((n*x)%9973+9973)%9973);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hdu