题目描述
n 的阶乘记为 n!,定义如下:
n!=1×2×⋯×n
给定两个正整数 n 与 m,请计算 n! 除以m 的余数。
输入格式
第一行:两个整数表示 n 与 m。
输出格式
单个整数:表示 n! 除以 m 的余数。
数据范围
- 对于 30%30% 的数据,1≤n≤10;
- 对于 60%60% 的数据,1≤n,m≤10000;
- 对于 100%100% 的数据,1≤n,m≤1,000,000;
样例数据
输入:
5 1000
输出:
120
说明:
5!=120
解析:
本题关键点:一是利用同余原理,二是根据题目给的数据范围,结果需要定义long类型的变量。代码如下。
#include <iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
long result=1;
for (int i=1;i<=n;i++)
{
result=result*(i%m)%m;
}
cout<<result<<endl;
return 0;
}