題解 LightOJ1067 逆元

2021-08-23 14:33:18 字數 572 閱讀 4868

題目鏈結

費小馬定理求逆元

a/b=1mod( m );

只要 m 是乙個素數,而且 b 不是 m 的倍數,就可以用乙個逆元整數 b』,通過 a/b=a*b』*(mod m)來以乘換除

費馬小定理說,對於素數 m 任意不是 m 的倍數的 b,都有:b^(m-1)=1 (mod) m;

於是可以拆成:b*b^(m-2)=1(mod)m;

所以:a/b=a/b*(b*b^(m-2))=a*(b^(m-2))(mod m)

也就是說我們要求的逆元就是b^(m-2)(mod m)

#include

const int n=1e6+5;

const int mod=1000003;

typedef long long ll;

ll fact[n];

void init()

ll niyuan(ll a,ll p)//快速冪

return res;

}ll work(int n,int k)

int main()

}

面試1題解析

題目 有從1到n共n個數,亂序,隨意去掉其中兩個數,用o n 的時間複雜度和o 1 的空間複雜度求是哪兩個數 演算法簡單描述如下 由於僅少了兩個數,所以可證僅有兩個鏈是開放的,其他的鏈都是閉合的。1.標記訪問過的元素 2.每次找到乙個單向非閉合的鏈,就把它表頭a i 的下標i記錄下來,並更改表頭a ...

習題解析1

百錢買百雞問題,公雞3文錢,母雞2文錢,小雞一文錢3只 首先我們要知道每個種類最多能買多少只,公雞最多能買33只,母雞最多買50只,小雞300只 先迴圈公雞巢狀迴圈母雞的隻數,最後小雞就是100 x y 在判斷是否是100文錢買100隻雞 計算器程式 首先題目說的是根據輸入符號判斷運算 就要定義 任...

數論練習1題解A

先貼題 此題有兩個思路 法1 運用費馬定理和同餘 則結果同餘與2 k,k為對n求1e9 6的模 此處可一位位讀求 也可 高精度 備註 以上均要使用快速冪 如下 include includeusing namespace std char ch 100002 long long power int,...