hdu 1576 A/B

来源:互联网 发布:base64 python实现 编辑:程序博客网 时间:2024/05/18 22:40

http://acm.hdu.edu.cn/showproblem.php?pid=1576

分析:

A%9973=n

即:An(mod9973)

即:Bxn(mod9973)

即:Bx1+9973*y1=1

 

#include<iostream>#include<cstdio>using namespace std;const int N=9973;__int64 x,y,r;void EX_Eulid(__int64 a,__int64 b){if(b==0) {x=1;y=0;r=a;}else{EX_Eulid(b,a%b);int t=x;x=y;y=t-a/b*y;}}int main(){__int64 n,B,T;scanf("%I64d",&T);while(T--){scanf("%I64d%I64d",&n,&B);EX_Eulid(B,N);x=x*n;printf("%I64d\n",(x%N+N)%N);}return 0;}


 

还可以直接暴力

#include<iostream>using namespace std;int main(){    __int64 N,M,T,i,num;    scanf("%I64d",&T);    while(T--)    {        scanf("%I64d%I64d",&N,&M);        for(i=9973/M;;i++)        {            num=i*M;            if(num%9973==N)                break;        }        num=(num/M)%9973;        printf("%I64d\n",num);            }    return 0;}