def factorial(n):
prod = 1
for i in range(1, n+1):
prod *= i
return prod
def guess_factorial():
n = int(input(“Guess a number between 1 and 1000: “))
print(“The factorial of”, n, “is”, factorial(n))
def welcome():
print(“This Python program will calculate the factorial of any number between 1 and 1000.”)
print(“You are provided with two functions: one to calculate the factorials, and another to help you guess values for the input. A third function returns a message when a factorial exceeds 1000.”)
welcome()
fact_dict = {}
def factorial(n):
if n == 1:
return 1
else:
print(“Now we’re going to calculate {}! That’s a big number.”.format(n))
product = (n * factorial(n-1))
print(“{}! is equal to {}.”.format(n, product))
if product > 1000:
return ‘Over a thousand.’
else:
return product
print(“This function will calculate any factorial up to 1000.”)
print(“Please enter an integer between 1 and 1000.”)
def num_user():
n = int(input())
def calculate_factorial():
n = int(input(“Enter a number between 1 and 1000: “))
fact = 1
while n > 0:
fact *= n
n -= 1
return fact
import math
def calc_factorial(x):
“””This is a recursive function
to find the factorial of an integer”””
if x == 1:
return 1
else:
return (x * calc_factorial(x-1))
num = 4
print(“The factorial of”, num, “is”, calc_factorial(num))
def factorial(x):
“””This is a recursive function
to find the factorial of an integer”””
if x == 1:
return 1
else:
return (x * factorial(x-1))
num = 3
print(“The factorial of”, num, “is”, factorial(num))
First, you need to import the math module.
import math
def factorial(n):
“””Return the factorial of n, an exact integer >= 0.
If the result is small enough to fit in an int, return an int.
Else return a long.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]
>>> [factorial(long(n)) for n in range(6)]
[1, 1, 2, 6, 24, 120]
>>> factorial(30)
265252859812191058636308480000000L
>>> factorial(30L)
265252859812191058636308480000000L
>>> factorial(-1)
Traceback (most recent call last):
…
ValueError: n must be >= 0
Factorials of floats are OK, but the float must be an exact integer:
>>> factorial(30.1)
Traceback (most recent call last):
…
ValueError: n must be exact integer”””
if not n >= 0: