Je slaat alleen 2 over, omdat de check op even getallen zeer eenvoudig
en dus snel is (alleen 1 bitje checken).
Als je ook 3 (en alle veelvouden daarvan) wilt overslaan, kost de check daarop (voor ELKE waarde zul je moeten checken of het een veelvoud van 3 is!), oftewel de modulo die je hierboven zo achteloos neerzet maar die (relatief) nogal tijdrovend is, je zeer waarschijnlijk meer tijd dan het basis-algoritme van veelvouden-eliminatie...
De routine die je hierboven geeft, checkt slechts voor EEN getal of het een veelvoud van 3 is, maar als je deze functie gaat aanroepen voor alle getallen tussen 0 en 10.000.000 kan ik me niet voorstellen dat dit je winst gaat opleveren maar eerder een zeer zware penalty...
Ook het halveren van het geheugengebruik leverde mij niets op voor de performance, omdat er een extra operator nodig was om de teller weer kloppend te krijgen. Wel leuk natuurlijk zodra geheugengebruik een issue wordt, en het zou inderdaad kunnen schelen doordat er ook minder pagina's hoeven te worden gecached, maar ook daar zag ik geen meetbare verbetering van terug?
Verder levert het geen meetbare extra snelheid op om de tellers met -1 enzo aan te passen, dus staat wel leuk maar is zonde van de moeite vind ik.
Alleen die wortel van MAX, ja, dat was dom van me

ik had het idee dat dat bij dit algoritme niet werkte maar het klopt dus WEL omdat de veelvouden van het priemgetal waarbij de factor lager is dan het priemgetal zelf ook al zijn gecheckt, en het scheelt ook nogal in snelheid!
Nadeel is nu wel dat ie ZO SNEL is dat het meten met milliseconden wat beperkt begint te worden, moeten we over op nano's?

OF gaan we tot de 100.000.000?