from tabelas import * def fatores_primos(n, printa=False, passo=False, debug=False): assert n>1, f"A entrada deve ser maior do que 1" Encontrados = [] Fatorar = n Candidato = 2 if printa: L_encontrados = [""] L_fatorar = [n] L_i = [2] while Fatorar > 1: if Candidato ** 2 > Fatorar: Encontrados.append(Fatorar) if printa: if L_encontrados[-1] != "": virg = ", " else: virg = "" L_encontrados.append(L_encontrados[-1] + f"{virg}{Fatorar}") L_fatorar.append(Fatorar) L_i.append(Candidato) break while Fatorar % Candidato == 0: Encontrados.append(Candidato) if debug: print(f"{Fatorar=}, {Candidato=}, {Fatorar%Candidato==0}, {Encontrados=}") Fatorar //= Candidato if printa: if L_encontrados[-1] != "": virg = ", " else: virg = "" L_encontrados.append(L_encontrados[-1] + f"{virg}{Candidato}") L_fatorar.append(Fatorar) L_i.append(Candidato) if Fatorar == 1: break if debug: print(f"{Fatorar=}, {Candidato=}, {Fatorar%Candidato==0}") Candidato += 1 if printa: L_encontrados.append(L_encontrados[-1]) L_fatorar.append(L_fatorar[-1]) L_i.append(Candidato) if printa: printa_tabela(["Fatorar", "Candidato", "Encontrados"],[L_fatorar, L_i,L_encontrados], passo=passo) else: return Encontrados