Av: Didrik Pemmer Aalen
Et Harshadtall er definert som et positivt tall som er delelig med summen av alle sifferne i tallet. I noen tilfeller er summen av alle sifferne i tallet et primtall. Disse kaller vi Harshadprimtall.
1729 er et Harshadtall fordi 1 + 7 + 2 + 9 = 19 og 1729 % 19 = 0. Dette er også et Harshadprimtall, fordi 19 er et primtall.
1730 er ikke et Harshadtall fordi 1 + 7 + 3 + 0 = 11 og 1730 % 11 = 3.
Hvor mange tall fra 1 til og med 98765432 er Harshadprimtall?
@michaelo @bobcat4
Jeg testet litt med pregenerering av tverrsummer (droppet constexpr for å gøre det litt mer "fair", pregenereringen tar jo uansett bare noen mikrosekunder). Med min siste versjon av loopingen ser det faktisk ut som det er mindre effektivt å bruke pregenererte tverrsummer enn å summere kun de sifrene som endrer seg.
Jeg har gjort det konfigurerbart fra kommandolinjen, så dere kan jo teste på deres systemer og se om dere observerer det samme.
Mine resultater er omtrent som følger:
Et lite screenshot fra codegen-verktøyet mitt: