码迷,mamicode.com
首页 > 其他好文 > 详细

NOIP2012 同余方程-拓展欧几里得

时间:2016-11-06 17:17:57      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:log   play   open   images   for   技术   image   整数   print   

题目描述

求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。

输入输出格式

输入格式:

输入只有一行,包含两个正整数 a, b,用一个空格隔开。

输出格式:

输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。

 

技术分享
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cstdlib>
 5 #include<cmath>
 6 #include<algorithm>
 7 #define LL long long
 8 #define FOR(a,b,c) for(int a=b;a<=c;a++)
 9 #define maxn 1024
10 using namespace std;
11 LL a,b,d,x,y,k;
12 void ggcd(LL a,LL b,LL &d,LL &x,LL &y){
13     if(b==0){
14         d=a;
15         x=1;
16         y=0;
17     }else{
18         ggcd(b,a%b,d,y,x);
19         y-=x*(a/b);
20     }
21 }
22 int main()
23 {
24     scanf("%lld%lld",&a,&b);
25     ggcd(a,b,d,x,y);
26     k=b/d;
27     while(x>=0) x-=k;
28     while(x<=0) x+=k;
29     printf("%lld",x);
30     return 0;
31 }
View Code

 

NOIP2012 同余方程-拓展欧几里得

标签:log   play   open   images   for   技术   image   整数   print   

原文地址:http://www.cnblogs.com/gzhonghui/p/6035304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!