Els nombres primers bessons són aquelles parelles de nombres primers que difereixen en 2. És a dir, i (amb ) són primers bessons si i són primers i . Excepte pel cas del 2 i el 3, aquesta és la mínima diferència que pot haver-hi entre dos primers. Els primers exemples de la llista de primers bessons són les parelles , i .
El terme va ser utilitzat per primera vegada pel matemàtic alemany Paul Stäckel qui, a finals del segle XIX, va fer alguns càlculs numèrics relacionats amb aquests nombres i altres qüestions connexes. No se sap si existeixen infinits nombres primers bessons. La conjectura dels nombres primers bessons que afirma que, efectivament, hi ha infinits primers bessons, encara no ha estat demostrada [Wikipedia].
Escriviu un programa que donat un nombre natural calculi l’-èsim parell de nombres primers bessons. Per exemple, si , el programa ha de calcular els primers bessons 11 i 13.
El vostre programa ha de definir i usar la funció @nth_twin_primes(n: int) -> tuple[int, int]@ que retorna l’-èsim parell de nombres bessons per . El vostre programa també ha de definir i usar la funció @are_primes(m: int, n: int) -> bool@, que indica si i són nombres primers, per .
L’entrada consisteix en una serie d’enters estrictament positius .
Per cada cal escriure una línia els dos nombres primers bessons que formen el parell, separats per un espai. Cada parell han d’anar en ordre creixent.
Com que molts parells de nombres seran compostos, no és bona idea determinar si ambdós son primers per separat a la funció @are_primes@.
Input
3 10 54 7 99
Output
11 13 107 109 1697 1699 59 61 3767 3769