Вычислить d, которое равно 1*2*3* и так до числа n, которое вводится пользователем

Вычислить d, которое равно 1 умножить на 2 умножить на 3 и так до числа n, которое вводится пользователем. Я написал так:

n=int(input())
p=1
s=0
for i in range(1,n+1):
    for b in range(1, i+1):
        p=p*b
    s=p
print(s)

Но этот код работает неправильно. Как исправить?


Ответы (2 шт):

Автор решения: Fox Fox
import math

N = int(input("Введите число: "))
print(f"Факториал {N}: {math.factorial(N)}")
→ Ссылка
Автор решения: чистов_n

Вы написали даже слишком сложно.

Вот так правильно:

n=int(input())
p=1  # (1)
for i in range(1,n+1):  # (2)
    p *= i  # (3)
print(p)

  1. Задаём p равным 1.
  2. Проходим по всем числам от 1 до n включительно.
  3. Домножаем p на i

Ввод:

3

Вывод:

6

→ Ссылка