" Smalltalk version of a prime number finder " | Max | Smalltalk arguments size < 1 ifTrue: [ 'Usage: primes.st [Max]' printNl. ] ifFalse: [ Max := (Smalltalk arguments at: 1) asInteger. 3 to: Max by: 2 do: [ :number | LowMax := (number sqrt) rounded. IsPrime := true. 3 to: LowMax by: 2 do: [ :factor | ((number rem: factor) == 0) ifTrue: [ IsPrime := false ] ]. IsPrime ifTrue: [ number printNl ] ] ]. !