1. 程式人生 > >Hdu 1576 A/B

Hdu 1576 A/B

word pos mar text math.h hdu scanf -- string

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
2
1000 53
87 123456789

Sample Output
7922
6060

盡管正解是擴展歐幾裏得算法,可是對於我等數論渣來說,這種方法還是太難想到了,於是秒想出一個姿勢,枚舉:i, A=B*i。當(A-n)%9973=0時。i即為(A/B)%9973的值。i的範圍為0-9972

#include<iostream>
#include<stdio.h>
#include<queue>
#include<stack>
#include<algorithm>
#include<string.h>
#include<string>
#include<math.h>
#define LL long long
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        LL n,m;
        scanf
("%lld%lld",&n,&m); int i; for(i=0;i<9973;i++) { if((m*i-n)%9973==0) break; } printf("%d\n",i); } return 0; }
‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); });

    Hdu 1576 A/B