输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)
例如:n = 10, P = 11,10! = 3628800
3628800 % 11 = 10
Input
两个数N,P,中间用空格隔开。(N < 10000, P < 10^9)
Output
输出N! mod P的结果。
Sample Input
10 11
Sample Output
10
同余定理
(a+b)%m=(a%m+b%m)%m a*b%m=(a%m*b%m)%m (主要用到这个定理,要记住!)
#include<stdio.h>
int main()
{
long long int n,p,i;
long long int sum=1;
scanf("%lld%lld",&n,&p);
if(n==0)
{
printf("%lld\n",1%p);
}
else
{
for(i=1;i<=n;i++)
{
sum=sum%p*i%p;
}
printf("%lld\n",sum);
}
return 0;
}