输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)
例如:n = 10, P = 11,10! = 3628800
3628800 % 11 = 10
输入
两个数N,P,中间用空格隔开。(N < 10000, P < 10^9)
输出
输出N! mod P的结果。
输入样例
10 11
输出样例
10
两个同余定理:
- (a+b)%p = (a%p+b% p)%p
- a*b%p = (a%p+b%p)%p
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{
int n,p;
cin>>n>>p; //(a+b)%p = (a%p+b%p)%p; a*b%p = (a%p*b%p)%p
ll ans = 1;
for(int i=1;i<=n;i++)
ans = (ans%p*i%p)%p;
cout<<ans<<endl;
return 0;
}