hdu 2973 YAPTCHA 威爾遜定理

2022-05-02 18:36:09 字數 1246 閱讀 1061

傳送門

題意:

給出自然數 n,計算出 sn 的值,其中 [ x ]表示不大於 x 的最大整數。

題解:

根據威爾遜定理,如果 p 為素數,那麼 (p-1)! ≡ -1(mod p),即 (p-1)! + 1 = p*q.

令 f(k) =

①如果 3k+7 為素數,則 (3k+7-1)! ≡ -1(mod 3k+7),即 (3k+6)! = (3k+7)*q -1.

那麼表示式

可化簡為 [ (3k+7)*q / (3k+7) - 1 / (3k+7) ] = [ q - 1 / (3k+7)].

易得 q-1 < q - 1 / (3k+7) < q ,所以

=q-1,那麼 f(k)= q-(q-1) = 1.

②如果 3k+7 為合數,則 (3k+6)! 能被 (3k+7) 整除,f(k) = 0;

由此,本題轉化為求解k在[1,n]範圍內 (3k+7) 的素數個數。

對②的證明:

令p=a*b,(1

b)①若a!=b,則(p-1)!=1*2*..*a*..*b*..*(p-1),顯然 (a*b) | (p-1)!;

②若a==b且為素數,則當a>2時,a*b=a*a>2*a,

若p>4,則(p-1)! = 1*2*..*a*..*(2a)*..(p-1),同樣有(a*b)|(p-1)!;

綜上,如果p為合數,則 p | (p-1)!;

view code

ac**:

1 #include2 #include3 #include4

using

namespace

std;

5const

int maxn=1e6+10;6

7intn;8

int ans[maxn];//

ans[i]:[1,i]中,滿足 3k+7 為素數的整數個數910

bool isprime(int

num)

1118

void

primetable()

1924

intmain()

2534

return0;

35 }

view code

ACM 數論 威爾遜定理 hdu2973

這裡是題面 題解 這個階乘和 p 1 p就想到了 威爾遜定理 p 1 p 1 mod p 當3 k 7為質數時 那麼 3 k 6 1 3 k 7 就是整數temp,後面的就是小於temp的乙個數,取整即temp 1,答案就是1 當3 k 7為和數時 自己試一些數字進去,發現答案就是0或者0.x,取整...

HDU 威威貓系列故事 籃球夢

威威貓十分迷戀籃球比賽,是忠實的nba球迷,他常常幻想自己那肥碩的身軀也能飛起扣籃。另外,他對籃球教練工作也情有獨鍾,特別是對比賽的戰術,投籃選擇方面也是很有研究,下面就是威威貓研究過的乙個問題 一場nba籃球比賽總共48分鐘,假如我們現在已經知道當前比分 a b,a代表我方的比分,b代表對方的比分...

HDU 威威貓系列故事 籃球夢

problem description 威威貓十分迷戀籃球比賽,是忠實的nba球迷,他常常幻想自己那肥碩的身軀也能飛起扣籃。另外,他對籃球教練工作也情有獨鍾,特別是對比賽的戰術,投籃選擇方面也是很有研究,下面就是威威貓研究過的乙個問題 一場nba籃球比賽總共48分鐘,假如我們現在已經知道當前比分 a...