分别用for和while循环求5!。 输入一个自然数n,计算并输出前n个自然数的阶乘之和1!+2!+3!……+n!的值 。 改写例4-7,打印小于100的所有素数。
时间: 2024-11-05 07:24:42 浏览: 54
当然可以,以下是分别使用`for`和`while`循环以及递归的方式来求解:
1. **用for循环求5! (5的阶乘):**
```python
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
# 计算5!
print(factorial(5))
```
2. **用while循环求5!:**
```python
def factorial_while(n):
result = 1
i = 1
while i <= n:
result *= i
i += 1
return result
# 输出5!
print(factorial_while(5))
```
**对于求前n个自然数的阶乘之和:**
```python
def sum.factorials(n):
total_sum = 0
for i in range(1, n + 1):
total_sum += factorial(i)
return total_sum
n = int(input("请输入一个自然数:"))
print("1! + 2! + ... + {}! 的和为:{}".format(n, sum.factorials(n)))
```
**打印小于100的所有素数(改写例4-7):**
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
primes_below_100 = []
num = 2
while num < 100:
if is_prime(num):
primes_below_100.append(num)
num += 1
print("小于100的所有素数:", primes_below_100)
```
阅读全文