计算阶乘和Sum= 1!+2!+...+n! 对1000000007求模的结果
时间: 2023-12-07 15:38:24 浏览: 58
以下是Python代码,用于计算阶乘和并对1000000007求模的结果:
```python
n = int(input("请输入一个正整数:"))
if n <= 0:
print("输入有误,请输入正整数")
else:
mod = 1000000007
factorial = 1
sum = 0
for i in range(1, n+1):
factorial = (factorial * i) % mod
sum = (sum + factorial) % mod
print("阶乘和对1000000007求模的结果为:", sum)
```
相关问题
计算阶乘和Sum= 1!+2!+...+n! 对1000000007求模的结果C++
以下是C++计算阶乘和并对1000000007求模的代码实现:
```cpp
#include <iostream>
using namespace std;
const int MOD = 1000000007;
int main() {
int n;
cin >> n;
long long sum = 0, m = 1;
for (int i = 1; i <= n; i++) {
m = (m * i) % MOD;
sum = (sum + m) % MOD;
}
cout << sum << endl;
return 0;
}
```
计算令 S = 1! + 2! + 3! + ... + 202320232023! ,求 S 的末尾 9 位数字。
这个问题的关键在于计算阶乘的末尾9位数字。我们可以使用模运算的性质,即(a*b)%c = ((a%c)*(b%c))%c,来避免大数的阶乘运算。然后,我们可以通过循环累加的方式,每次计算一个阶乘,然后对结果取模,最后得到的结果就是S的末尾9位数字。
以下是Python代码实现:
```python
def factorial_mod(n, mod):
result = 1
for i in range(1, n+1):
result = (result * i) % mod
return result
def sum_factorial_mod(n, mod):
result = 0
for i in range(1, n+1):
result = (result + factorial_mod(i, mod)) % mod
return result
print(sum_factorial_mod(202320232023, 10**9))
```
这段代码首先定义了一个函数`factorial_mod(n, mod)`,用于计算n的阶乘并对结果取模。然后定义了一个函数`sum_factorial_mod(n, mod)`,用于计算1!到n!的和并对结果取模。最后,调用`sum_factorial_mod(202320232023, 10**9)`,打印出S的末尾9位数字。