HDU P1576 A/B

来源:互联网 发布:淘宝用户名被冻结 编辑:程序博客网 时间:2024/06/10 16:38

HDU P1576 A/B


题目

Problem Description

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

Input

数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。

Output

对应每组数据输出(A/B)%9973。

Sample Input

21000 5387 123456789

Sample Output

79226060

Author
xhd

Source
HDU 2007-1 Programming Contest


题解

逆元(模板题)


代码

#include<cstdio>using namespace std;int t,p,x,y;int inv[10005];int readln(){    int x=0,f=1;    char ch=getchar();    while (ch<'0'||ch>'9') {if (ch=='-') f=-1;ch=getchar();}    while ('0'<=ch&&ch<='9') x=x*10+ch-48,ch=getchar();    return x*f;}int main(){    t=readln();p=9973;    inv[1]=1;    for (int i=2;i<p;i++) inv[i]=(p-p/i)*inv[p%i]%p;    while (t--)    {        x=readln();y=readln();y=y%p;        printf("%d\n",(x*inv[y])%p);    }    return 0;}
原创粉丝点击