import math
def eh_composto(n):
“”“Verifica se um número é composto.”“”
if n < 2:
return False # Números menores que 2 não são compostos
if n % 2 == 0 and n > 2: # Otimização: verifica se é par (e maior que 2)
return True
for i in range(3, int(math.sqrt(n)) + 1, 2): # Otimização: itera apenas por ímpares
if n % i == 0:
return True # Se encontrar um divisor, é composto
return False # Se não encontrar divisores, não é composto (é primo)
def gera_compostos(limite, imprimir_lista=False):
“”“Gera uma lista com os ‘limite’ primeiros números compostos únicos.”“”
compostos = [] # Lista para armazenar os números compostos únicos
x = 1
while len(compostos) < limite: # Loop principal: continua até encontrar o limite de compostos
for y in range(limite * 5): # Loop interno: itera para diferentes valores de y
resultado = 6*(6 + 5y + (6(1+y) + 1)*x) - 1 # Aplica a fórmula
if eh_composto(resultado): # Verifica se o resultado é composto
if resultado not in compostos: # Verifica se o resultado é único (não está na lista)
compostos.append(resultado) # Adiciona o número composto único à lista
if imprimir_lista: # Imprime o número único encontrado, se a opção estiver ativada
print(f"Número composto único encontrado: {resultado}“)
if len(compostos) == limite: # Verifica se já encontrou o limite de números únicos
return compostos # Sai da função se o limite for atingido
# else:
# print(f"Número composto repetido: {resultado}”) # (Opcional) Imprime o número repetido
x += 1 # Incrementa x para gerar o próximo número
return compostos # Retorna a lista (mesmo que não tenha atingido o limite)
Escolha o limite de números compostos únicos que você deseja gerar
limite = 1000
Escolha se deseja imprimir a lista completa (opcional - pode levar tempo)
imprimir_lista = True # Defina como True para imprimir a lista ou False para não imprimir
Gerar e imprimir os números compostos únicos
compostos = gera_compostos(limite, imprimir_lista)
Mensagem final
if len(compostos) == limite:
print(f"Gerou {limite} números compostos únicos.“)
else:
print(f"Gerou {len(compostos)} números compostos, mas não {limite} únicos.”)
Se a impressão da lista estiver ativada, ela será exibida aqui
(
a ia que mandei criar o codigo como eu queria criou isso e fiz o teste e gerou no limite que coloquei e mais ,mas o codigo esta como eu quero? 6+5y+(6*(1+y)+1)x x de 1 a infinito e y de 0 a infinito e (x,y) naturais? dizer se 6(6+5y+(6*(1+y)+1)*x)-1 gera 100 primeiros numeros compostos sem repeticao ele faz isso?)