l
来源:互联网 发布:dirt rally for mac 编辑:程序博客网 时间:2024/06/08 17:28
l
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。
输入
输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9)
输出
输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。
示例输入
2 3
示例输出
2
提示
来源
Rocky
示例程序
#include<stdio.h> long long x,y,d; long long gcd(long long a,long long b) { return a?gcd(b%a,a):b; } void gcd(long long a,long long b,long long &d,long long &x,long long &y) { if(!b) { d=a; x=1; y=0; } else { gcd(b,a%b,d,y,x); y-=x*(a/b); } } int main() { long long i,j,n,m,k,t; while(scanf("%lld %lld",&m,&n)!=EOF) { d=gcd(m,n); gcd(m,n,d,x,y); x=((x%n)+n)%n; printf("%lld\n",x); } }
0 0