您的位置:首页 > 其它

HDU 1576 扩展欧几里得

2013-07-17 10:13 225 查看
/*
题目大意:
简单的中文数学题.
//题目中给出B与9973互质,可以直接套用小费马
//而我采用扩展的欧几里得算法解
*/
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<iomanip>
#define MO 9973
using namespace std;

void ext_gcd(int a,int b,int &x,int &y)
{
int t;
if (b==0) { x=1; y=0; return; }
else
{
ext_gcd(b,a%b,x,y);
t=x; x=y; y=t-(a/b)*y;
}
return;
}

int main()
{
int T;
cin>>T;
while(T--)
{
int n,B,x,y;
scanf("%d%d",&n,&B);
ext_gcd(B,MO,x,y);
x=(x+MO)%MO;
int res=(x*n)%MO;
cout<<res<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: