Primes by Trial Division - Microsoft QBasic
17 August 2016
While Microsoft QBasic does allow programs with line numbers, idiomatically one is meant not to. So this version does not have them. Stack exhaustion was a problem for QBasic with the way the Applesoft version uses FOR/NEXT, so program flow has improved slightly as a side effect of dealing with that. The MODulus function is put to use as well.
SUB primes (n AS INTEGER) count = 2 found = 0 index = 0 DIM prime(n - 1) DO WHILE found < n PRINT count prime(found) = count found = found + 1 NOTPRIME: count = count + 1 index = 0 DO v = count MOD prime(index) index = index + 1 LOOP UNTIL v = 0 OR index = found IF v = 0 THEN GOTO NOTPRIME LOOP END SUB