求阶乘之和
周赛第四场
求阶乘防止时间超出
[阶乘之和]
问题描述
对1!+2!+…+n!的结果对m取余。
输入
输入一行数据n,m(1<=n<=106,1<=m<=109)
输出
输入例子 1
5 1000
输出例子 1
153
输入例子 2
1000 1000
输出例子 2
313
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, m,i;
long sum1 = 1;
long sum = 0;
scanf("%d %d", &n,&m);
for (int j = 1; j <= n; j++) {
sum1 = sum1 *j;
sum1 = sum1 % m;
sum = sum + sum1;
}
printf("%ld", sum%m);
return 0;
}