51Nod 1008 N的阶乘 mod P

Posted 午夜的行人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod 1008 N的阶乘 mod P相关的知识,希望对你有一定的参考价值。

输入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

同余定理:(a+b)%m=(a%m+b%m)%m    a*b%m=(a%m*b%m)%m 
 1 #include <iostream>
 2 #include <cstring>
 3 #include <string>
 4 #include <algorithm>
 5 #include <stdio.h>
 6 using namespace std;
 7 #define LL long long
 8 int main()
 9 {
10     LL n,p;
11     scanf("%lld%lld",&n,&p);
12     if(n==0){
13         printf("%lld\n",1%p);
14     }
15     else{
16         LL sum=1;
17         for(LL i=1;i<=n;++i){
18             sum=sum%p*i%p;
19         }
20         printf("%lld\n",sum);
21     }
22     return 0;
23 }

 

以上是关于51Nod 1008 N的阶乘 mod P的主要内容,如果未能解决你的问题,请参考以下文章

51Nod 1008 N的阶乘 mod P

51 Nod 1008 N的阶乘 mod PJava大数乱搞

51Nod1039 N^3 Mod P 数论 原根 BSGS

51nod1057 N的阶乘

51nod 1057 N的阶乘

51nod 1058 N的阶乘的长度 位数公式