Una tripla pitagorica è composta da tre numeri interi positivi a, b e c, in modo tale che a 2 + b 2 = c 2 . Tale tripla è comunemente scritta (a, b, c) e un esempio ben noto è (3, 4, 5). Se (a, b, c) è una tripla pitagorica, allora lo è anche (ka, kb, kc) per qualsiasi numero intero positivo k. Una tripla pitagorica primitiva è una in cui a, bec sono coprimi .
Usando questa conoscenza, possiamo creare una sequenza concatenando insieme le minime lunghezze delle triple, in cui l'elemento successivo nella sequenza è l'ipotenusa (il numero più grande) della più piccola tripla pitagorica primitiva contenente l'elemento precedente come la più piccola delle sue lunghezze.
Inizia con la più piccola tripla pitagorica primitiva (3, 4, 5). La sequenza inizia con 3
e l'ipotenusa (elemento successivo nella sequenza) è 5
. Quindi trova la più piccola tripla pitagorica primitiva con 5
come una gamba e ottieni (5, 12, 13). Quindi la sequenza continua con 13
.
Emette la sequenza per sempre, oppure accetta un input intero n
e genera i primi n
elementi della sequenza, zero o uno indicizzato.
È necessario supportare l'output almeno attraverso e compreso 28455997
, ma se il limite del tipo di dati che si sta utilizzando è stato improvvisamente aumentato, dovrebbe funzionare per quel nuovo limite. Quindi non è possibile codificare un elenco di numeri.
3
5
13
85
157
12325
90733
2449525
28455997
295742792965
171480834409967437
656310093705697045
1616599508725767821225590944157
4461691012090851100342993272805
115366949386695884000892071602798585632943213
12002377162350258332845595301471273220420939451301220405
Sequenze simili (non emetterle!):
12325
.
85
... il suo prossimo termine è 3613
(riesci a indovinare di cosa si tratta ancora?)