Dúvida em estrutura de repetição

Olá, boa tarde! Estou com dúvidas em uma estrutura de repetição. O exercício é, basicamente, fazer com que o usuário forneça um número inteiro e caso este número seja zero ou menor que zero o programa entrará em um loop até o usuário informar o valor correto. Ao informar o valor correto do número, o programa deverá ler este número e informar o fatorial deste número. Até aqui está okay, fiz tudo direitinho. A segunda parte que está sendo o problema e diz o seguinte: Após calculado o fatorial do número informado pelo usuário, o programa deve informar todos os números primos de 1 N!. O código segue abaixo:

nome = input("Olá usuário! Por gentileza, informe seu nome: ")
print(f"Seja bem vindo(a) {nome}! Vamos calcular os números primos a partir de fatoriais?")
from math import factorial
numero=int(input("Por gentileza, informe um número inteiro qualquer: "))
while numero<=0:
    numero = int(input("Por gentileza, informe um número inteiro qualquer: "))
fatorial=factorial(numero)
print(f"O fatorial de {numero} é {fatorial}")

for c in range (1,fatorial):
        if fatorial%c==0:
            print(fatorial-1)

Tenho 100% de certeza que estou equivocado no comando for, mas o que eu tentei fazer foi criar um range que varia de 1 até o número do fatorial e, assim, se a divisão for inteira ele seria primo… mas um número primo é divisível apenas por ele mesmo e por um… Não estou conseguindo fazer esta lógica no computador. :sweat_smile::sweat_smile::sweat_smile::sweat_smile:

Desde já, muito obrigado

Para calcular todos os números primos entre 1 e N, tem alguns algoritmos prontos aqui.

1 curtida