日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

51nod 1256 乘法逆元(扩展欧几里得)

發(fā)布時(shí)間:2025/3/20 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51nod 1256 乘法逆元(扩展欧几里得) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題:

給出2個(gè)數(shù)M和N(M < N),且M與N互質(zhì),找出一個(gè)數(shù)K滿足0 < K < N且K * M % N = 1,如果有多個(gè)滿足條件的,輸出最小的。
Input
輸入2個(gè)數(shù)M, N中間用空格分隔(1 <= M < N <= 10^9)
Output
輸出一個(gè)數(shù)K,滿足0 < K < N且K * M % N = 1,如果有多個(gè)滿足條件的,輸出最小的。
Sample Input
2 3
Sample Output
2

思路:由于M和N不一定是質(zhì)數(shù),故不能用費(fèi)馬小定理,應(yīng)用擴(kuò)展歐幾里得算法。K*M%N=1,求K即求出M對于N的乘法逆元。

代碼:

#include <iostream> using namespace std; typedef long long ll; int exgcd(int a,int b,int &x,int &y) {if(b==0){x=1;y=0;return a;}else{int r=exgcd(b,a%b,x,y);int t=x;x=y;y=t-(a/b)*x;return r;//r為ab最大公約數(shù) } } int main() {int m,n,x,y;cin>>m>>n;exgcd(m,n,x,y);while(x<0){x+=n;//若得到的x小于0,則應(yīng)使其加n,直到x>0. }cout<<x<<endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的51nod 1256 乘法逆元(扩展欧几里得)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。