歡歡的簽到題(數論)

2021-10-25 16:49:12 字數 1577 閱讀 1057

歡歡的簽到題

題目描述

歡歡會給你乙個素數p

pp,由於歡歡的數論非常菜,所以他想請你幫他計算一下a

aa在模p

pp下的逆元。

輸入描述:
輸入a

aa和p

pp,用空格隔開

輸出描述:
輸出逆元

樣例1

輸入

3 5

輸出
1≤a

≤p≤1

e18

1≤a≤p≤1e18

1≤a≤p≤

1e18

解決思路
提示:資料範圍出鍋,p

pp其實是小於2

312^

231的,雖然1018

10^10

18也可以做(用龜速乘處理一下會溢位的乘法就行,或者用萬能的__int128)。

已知:模素數的逆元為ap−

2a^

ap−2

求解:a

aa非常大,如果直接算的話,會爆long long。

做法一:用__int128過渡溢位的情況。

做法二:a

aa直接對p

pp取模再進行快速冪。

**一
#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n =

1e6+10;

ll qpow

(__int128 a, ll b, ll p)

a = a * a % p;

b >>=1;

}return res;

}int

main()

**二
#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n =

1e6+10;

ll qpow

(ll a, ll b, ll p)

a = a * a % p;

b >>=1;

}return res;

}int

main()

數論 素數篩,phi P3601簽到題

題目描述 給出l,r,要求求出 sum r i phi i mod 666623333 1 leq l leq r leq 10 r l leq 10 6 對於乙個數n,肯定有至少乙個小於等於 sqrt n 的 質 因子。因為 r leq 10 所以可以先預處理 10 以內的素數,然後利用r l比較...

QAQ ORZ 的簽到題

時間限制 1 sec 記憶體限制 128 mb 提交 839 解決 209 統計qaq 的好朋友 orz,最近在做乙個選拔節目的評委,對於每位選手 orz 想知道在這個選手以及這位選手前面的的選手中,得分最高和最低的選手的序號分別是多少.orz 找了 qaq 幫忙,但是 qaq 最近在追火星情報局....

QAQ ORZ 的簽到題

時間限制 1 sec 記憶體限制 128 mb 提交 834 解決 204 qaq 的好朋友 orz,最近在做乙個選拔節目的評委,對於每位選手 orz 想知道在這個選手以及這位選手前面的的選手中,得分最高和最低的選手的序號分別是多少.orz 找了 qaq 幫忙,但是 qaq 最近在追火星情報局.所以...