N! mod p

版权声明:wywwzjj https://blog.csdn.net/weixin_42348709/article/details/81115709
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define ls l,mid,rt<<1
#define rs mid+1,r,rt<<1|1
#define de(x) cout<< #x<<" = "<<x<<endl
#define dd(x) cout<< #x<<" = "<<x<<" "
#define sf scanf
#define pf printf
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
typedef long long ll;
typedef long double ld;
const int INF=0x3f3f3f3f;
const double eps=1e-8;
const double PI=acos(-1.0);
const int MAXN=1e3+5;
const int MOD=2009;
int sgn(double x){if(fabs(x)<eps)return 0;if(x<0)return -1;else return 1;}
ll pw(ll a,ll n,ll mod){ll ret=1;while(n){if(n&1)ret=ret*a%mod;a=a*a%mod;n>>=1;}return ret;}
ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);}

int main() {
	ll n,p;cin>>n>>p;
	ll ans = 1;
	if(n>=p) puts("0");
	else {
		per(i,1,n+1) {
			ans = (ans*(i%p))%p;
		}
		pf("%lld\n",ans);
	}
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42348709/article/details/81115709
mod