Merkelige tall

an old cobblestone house in the woods near a stream with the number 70 on the house. Image generated by Adobe Firefly
Velg et tall, et hvilket som helst positivt heltall. For eksempel 6. Finn alle faktorene eller divisorer til tallet, bortsett fra tallet selv. Med tallet 6 blir divisorene 1, 2 og 3. Summen av divisorene blir 6. Når summen er lik tallet eller dividenden, kalles det et perfekt tall. Det finnes ikke så mange sånne.
Dersom summen av divisorer blir mindre enn dividenden, kalles tallet underskuddstall (deficient). Og motsatt, dersom summen blir større, kalles det overskuddstall (abundant).
Det finnes flere kategorier av underlige tallrekker og en slik heter faktisk merkelige tall (weird). Det er definert som overskuddstall der du i tillegg ikke klarer å komme frem til dividenden uansett hvilke kombinasjoner du forsøker å summere divisorene på.
Det er syv slike tall under 10 000: 70, 836, 4030, 5830, 7192, 7912, 9272.
Det er en fin øvelse å forsøke å finne disse tallene selv. Det er også god trening på å optimalisere kode på, for min laptops minne blir raskt oversvømt. Jeg blir da tvunget til å finne bedre måter å skrive algoritmer på. Et eksempel er å ikke lagre data underveis, men gjøre noen operasjoner direkte. Et annet eksempel er å ta i bruk alle kjernene i prosessoren din, for å lette på arbeidsbyrden.
Koden min ser du under, og kan helst sikkert optimaliseres mer for å bli raskere, men den kræsjer ikke lengre når jeg forsøker å finne tall. Den bruker fortsatt lang tid da.