Definition
Eine positive ganze Zahl n
ist eine praktische Zahl (OEIS-Sequenz A005153 ), wenn alle kleineren positiven ganzen Zahlen als Summen verschiedener Teiler von dargestellt werden können n
.
Ist beispielsweise 18
eine praktische Zahl: Die Teiler sind 1, 2, 3, 6, 9 und 18, und die anderen positiven ganzen Zahlen kleiner als 18 können wie folgt gebildet werden:
4 = 1 + 3 5 = 2 + 3 7 = 1 + 6
8 = 2 + 6 10 = 1 + 9 11 = 2 + 9
12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 + 6
13 = 1 + 3 + 9 14 = 2 + 3 + 9 15 = 6 + 9
16 = 1 + 6 + 9 17 = 2 + 6 + 9
Dies 14
ist jedoch keine praktische Zahl: Die Teiler sind 1, 2, 7 und 14, und es gibt keine Teilmenge davon, die zu 4, 5, 6, 11, 12 oder 13 addiert.
Herausforderung
Schreiben Sie ein Programm, eine Funktion oder ein Verb, das eine positive Ganzzahl als Eingabe verwendet x
und entweder die x- te praktische Zahl zurückgibt oder ausgibt , die aus Gründen der Konsistenz mit OEIS von 1 indexiert wird. Ihr Code muss so effizient sein, dass er auf einem vernünftigen Desktop-Computer Eingaben von bis zu 250000 in weniger als zwei Minuten verarbeiten kann. (Hinweis: Meine Referenzimplementierung in Java verwaltet 250000 in weniger als 0,5 Sekunden und meine Referenzimplementierung in Python in 12 Sekunden.)
Testfälle
Input Expected output
1 1
8 18
1000 6500
250000 2764000
1000000 12214770
3000000 39258256