Faça uma função Python para retornar o primorial de n (ou n#) que é a multiplicação de todos os primos de dois até
.
Ex1: se n for 5 então n# será
Ex2: se
for 6 então
será
Ex3: se n for 7 então
será
Por definição matemática o primorial de um é um e o primorial de qualquer número menor que um é indefinido (em Python None, pois basta usar return sem valor algum)
Ex1: se n for 5 então n# será
Ex2: se
Ex3: se n for 7 então
Por definição matemática o primorial de um é um e o primorial de qualquer número menor que um é indefinido (em Python None, pois basta usar return sem valor algum)
Passo 1
Beleza, vamos resolver esse exercício juntos! A questão pede para criarmos uma função em Python que calcule o primorial de um número
n
, representado por n#
. O primorial de n
é a multiplicação de todos os números primos de 2 até n
. Para resolver isso, vamos precisar entender o que são números primos e como podemos identificá-los em Python, além de saber multiplicar esses números para obter o resultado final.Passo 2
Primeiro, precisamos saber o que é um número primo. Um número primo é aquele que tem exatamente dois divisores distintos: 1 e ele mesmo. Por exemplo, 2, 3, 5, 7 são primos porque não podem ser divididos igualmente por nenhum outro número além de 1 e deles mesmos.
Passo 3
Então, o primeiro passo do nosso código será identificar quais números entre 2 e
n
são primos. Para isso, vamos criar uma função que verifica se um número é primo. Essa função vai testar se o número pode ser dividido por algum outro número além de 1 e dele mesmo.Passo 4
Após identificar todos os números primos até
n
, precisamos multiplicá-los para obter o primorial. Vamos usar uma variável para armazenar o resultado da multiplicação desses números.Passo 5
Também precisamos tratar casos especiais: se
n
for 1, o primorial é definido como 1. E para números menores que 1, o primorial é indefinido, então retornaremos None
.Passo 6
Agora, vamos implementar tudo isso em código Python. Vamos criar uma função chamada
primorial
que recebe um número n
e retorna o primorial dele seguindo as regras que discutimos.Passo 7
Dentro da função, começaremos verificando se
n
é menor que 1. Se for, retornamos None
. Se n
for igual a 1, retornamos 1. Caso contrário, identificamos os números primos entre 2 e n
e multiplicamos todos eles para obter o primorial.Passo 8
Para identificar se um número é primo, vamos criar uma função auxiliar chamada
eh_primo
que retorna True
se o número for primo e False
caso contrário. Essa função vai testar se o número tem divisores além de 1 e dele mesmo.Passo 9
Finalmente, usamos a função
eh_primo
para filtrar os números primos e calcular o produto deles usando um loop ou funções auxiliares como reduce
e operator.mul
do Python.Resposta
Aqui está a função Python que calcula o primorial de
n
conforme solicitado:def primorial(n):
if n < 1:
return None
elif n == 1:
return 1
else:
def eh_primo(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
primos = [i for i in range(2, n + 1) if eh_primo(i)]
resultado = 1
for primo in primos:
resultado *= primo
return resultado
# Exemplos de uso:
print(primorial(5)) # Saída: 30
print(primorial(6)) # Saída: 30
print(primorial(7)) # Saída: 210
print(primorial(1)) # Saída: 1
print(primorial(0)) # Saída: None
Essa função verifica se
n
é menor que 1, igual a 1 ou maior, identifica os números primos até n
e multiplica todos eles para retornar o primorial correspondente.