4064: 练4.15 阶乘之和

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

输入n,计算S=1! + 2! + 3! + … + n!的末6位(不含前导0)。n≤106, n!表示前n个正整数之积。

输入

输入n。

输出

如题述,求阶乘之和。

样例输入 复制

10

样例输出 复制

37913

提示

n=int(input())
s=0
for i in range(1,n+1):
    fac=1
    for j in range(1,i+1):
        fac*=j
    #fac是i!
    s+=fac
print(s%1000000)
'''
注意累乘器factorial(英文“阶乘”的意思)定义在循环里面。换句话说,每执行一次循环体,都要重新声明一次factorial;并初始化为1(想一想,为什么不0)。
因为只要末6位,所以输出时对10^6取模。
'''