Primes by Trial Division - Smalltalk-80

8 October 2017
Smalltalk-80 uses a non-standard character set, which includes arrows for assignment and method return.
Object subclass: #Benchmark
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Benchmark'!
!Benchmark methodsFor: 'findPrimes' !
findPrimes: n
| count primes prime |
count ← 3.
primes ← OrderedCollection with: 2.
[ primes size < n ] whileTrue: [
primes detect: [ :prime | count \\ prime = 0 ] ifNone: [ primes add: count ].
count ← count + 1. ].
↑ primes! !
"Transcript show: (Time millisecondsToRun: [
Transcript show: ((Benchmark new) findPrimes: 100) printString; cr. ] )
printString; cr."