在實際做題中,我們經常能遇到對除法取餘的式子,比如(a/b)%c。碰到這種情況我們有兩種方法來解決。
(a/b)mod m = [a mod (m*b) ] / b
證明如下:
首先說一下費馬小定理
費馬小定理(fermat』s little theorem)是數論中的乙個重要定理,在2023年提出。如果p是乙個質數,而整數a不是p的倍數,則有a^(p-1)≡1(mod p)。然後說一下逆元 如果存在x使得 ax ≡1 mod p,則說x是a的逆元。
通過上面我們知道a(p-1)≡1(mod p),我們將等式換為a * a(p-2) ≡ 1 mod p,這不就說明了a的逆元就是a(p-2)嘛。
回到我們的 (a/b) mod c,通過變換的到 a * 1 * b-1 mod c
我們又知道 bc-1 mod c = 1, 帶入上面的到,a* b c-1 * b-1 mod c
在變換得到a*bc-2 mod c。
這樣就把乙個除法的式子轉換為了乙個乘法的式子,一般情況下這個c都特別的大,所以b的逆元應該使用快速冪進行求解。而且給出的c也都是乙個素數。牛客
解題思路,平方和公式 n * (n+1) * (2 * n+1)/6
對於除6,要使用逆元進行求解
#include
using
namespace std;
typedef
long
long ll;
const
long
long mod =
1000000007
;ll qul
(ll a, ll b)
return sum;
}int
main()
return0;
}
C語言的除法與取餘運算
在c語言中,負數除法運算與正數除法運算不一樣,遵循原則有 a b 分子分母的符號,相同為正,相異為負 a b 結果取分子 a 的符號,即與被除數 a 符號相同 eg 3 16 0 16 3 5 3 16 3 16 3 1 在數學公式中,c語言和python的表示演算法都是一樣的 r a n a n ...
亂碼解決方法
jsp頁面顯示亂碼 pageencoding utf 8 servlet頁面顯示亂碼 在response輸出內容之前,執行response.setcontenttype text html charset utf 8 post表單傳遞引數亂碼 通過jsp頁面 html頁面或者servlet中的表單元...
usr bin ld lc解決方法
背景 使用海思交叉編譯器編譯庫檔案中出現。原因 ld表示連線,lc表示需要連線libc.a。出現這個,說明缺少需要的libc.a檔案。解決過程 剛開始以為是海思交叉編譯器的問題,便在安裝目錄find libc.a,找到很多個,排除這個原因 然後檢查路徑問題,發現路徑也沒問題。回想一下,虛擬機器是mi...