题意:
给你一个1e9到1e14以内的质数p,求小于p的最大质数的阶乘取模p
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=6608
题解:
队友找规律套了一个Miller_Rabin板子过了
- Miller_Rabin素数测试是可以来测 1e18以内的大数测试法
- 威尔逊定理就是对于任意的正质数k,有 ((k-1)!)%k = k-1
AC_code:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int S = 8;
ll mult_mod(ll a,ll b,ll c) {
a%=c;
b%=c;
ll ret = 0;
ll tmp = a;
while(b) {
if(b&1) {
ret += tmp;
if(ret >