from math import sqrt # **nesse caso específico**, como eu não testo o 2, estou deliberadamente ignorando ele e os demais números pares def primo(n): if n % 2 == 0 or n % 3 == 0: return False i = 5 limite = int(sqrt(n)) + 1 while i < limite: if n % i == 0 or n % (i + 2) == 0: return False i += 6 return True quantidade = 10 lista = [] proxPrimo = None # começo no 3, pois sei que (2, 3) não são gêmeos n = 3 while quantidade > len(lista): # se o número já foi testado antes, não preciso testar de novo if proxPrimo is None: if(len(lista) == 0): atualPrimo = True # e o 3 else: atualPrimo = primo(n) else: atualPrimo = proxPrimo proxPrimo = primo(n + 2) if atualPrimo and proxPrimo: lista.append((n, n + 2)) n += 2 print(lista)
Standard input is empty
[(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73), (101, 103), (107, 109)]