数论——HDU-1576

情到浓时终转凉″ 提交于 2020-02-28 11:44:59

题目链接

A/B≡x mod 9973

要我们求出这个x

转换式子就是 A/B=x+9973*k

A/B=x+9973*k

因为B整除A,所以A=B*X+9973*k*B

取模得到 A-B*x≡0 mod 9973 =>  n-B*x≡0

x显然在0-9972,遍历一下就能找到最小的x了

题目代码

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std;
const int maxn=1e8+100;
typedef long long LL;
int t,n;
LL b;
int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%d%lld",&n,&b);
        int x;
        for(x=0;x<9973;x++){
            LL t=b*x-n;
            if(t%9973==0)break;
        }
        printf("%d\n",x);
    }
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!