同余方程———扩展欧几里得
生活随笔
收集整理的這篇文章主要介紹了
同余方程———扩展欧几里得
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
1200 同余方程
?2012年NOIP全國聯賽提高組
?時間限制: 1 s ?空間限制: 128000 KB ?題目等級 : 鉆石 Diamond 題解 ?查看運行結果 題目描述?Description求關于 x 同余方程 ax ≡ 1 (mod b)的最小正整數解。?
輸入描述?Input Description輸入只有一行,包含兩個正整數 a, b,用 一個 空格隔開。?
輸出描述?Output Description輸出只有一行包含一個正整數x0,即最小正整數解,輸入數據保證一定有解。
樣例輸入?Sample Input3 10?
樣例輸出?Sample Output7
數據范圍及提示?Data Size & Hint【數據范圍】
對于 40% ?的數據, 2 ≤b≤ 1,000 ;
對于 60% 的數據, 2 ≤b≤ 50,000,000?
對于 100% ?的數據, 2 ≤a, b≤ 2,000,000,000
分類標簽?Tags?
歐幾里德定理?數論?大陸地區?NOIP全國聯賽提高組?2012年 ?
?
代碼
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> using namespace std; long long a,b,x,y; long long exgcd(long long a,long long b,long long x,long long y) {if(b==0){x=1,y=0;return a;}else{int r=exgcd(b,a%b,x,y),tmp;tmp=x,x=y,y=tmp-a/b*y;return r;} } int main() {cin>>a>>b;int s=exgcd(a,b,x,y);while(x<0)x+=(b/s);cout<<x;return 0; }?
轉載于:https://www.cnblogs.com/z360/p/6670376.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的同余方程———扩展欧几里得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ 3925 [Zjoi2015]
- 下一篇: Storm的acker确认机制