1008 n的阶乘 mod p
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
输入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的结果。
Input示例
10 11
Output示例
10
注意:这里主要是用了同余定理记住2个公式
(a+b)%m=(a%m+b%m)%m
ab%m=(a%mb%m)%m
#include <iostream>
#include<math.h>
using namespace std;
#define LL long long
int main()
{
LL n,p;
scanf("%lld%lld",&n,&p);
if(n==0)
{
printf("%lld\n",1%p);
}
else
{
LL sum=1;
for(LL i=1;i<=n;++i)
{
sum=sum%p*i%p;
}
printf("%lld\n",sum);
}
return 0;
}