This is an old revision of the document!
The naive implementation is our baseline: implement with no awareness of potential tweaks, improvements, or optimizations. This should be the worst performing when compared to any optimization.
START TIMEKEEPING NUMBER: FROM 2 THROUGH UPPERBOUND: ISPRIME <- YES FACTOR: FROM 2 THROUGH NUMBER-1: SHOULD FACTOR DIVIDE EVENLY INTO NUMBER: ISPRIME <- NO PROCEED TO NEXT FACTOR SHOULD ISPRIME STILL BE YES: INCREMENT OUR PRIME TALLY PROCEED TO NEXT NUMBER STOP TIMEKEEPING
START TIMEKEEPING NUMBER: FROM 2 THROUGH UPPERBOUND: SHOULD THE NUMBER SLOT BE TRUE: VALUE AT NUMBER IS PRIME, INCREMENT TALLY MULTIPLE: FROM NUMBER+NUMBER THROUGH UPPERBOUND: VALUE AT MULTIPLE IS NOT PRIME MULTIPLE IS MULTIPLE PLUS NUMBER PROCEED TO NEXT MULTIPLE INCREMENT NUMBER PROCEED TO NEXT NUMBER STOP TIMEKEEPING
START TIMEKEEPING NUMBER: FROM 2 THROUGH NUMBER*NUMBER<UPPERBOUND: SHOULD THE NUMBER SLOT BE TRUE: VALUE AT NUMBER IS PRIME, INCREMENT TALLY MULTIPLE: FROM NUMBER*NUMBER THROUGH UPPERBOUND: VALUE AT MULTIPLE IS NOT PRIME MULTIPLE IS MULTIPLE PLUS NUMBER PROCEED TO NEXT MULTIPLE INCREMENT NUMBER PROCEED TO NEXT NUMBER STOP TIMEKEEPING