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
原创粉丝点击