home *** CD-ROM | disk | FTP | other *** search
/ Really Useful CD 1 / ReallyUsefulCD1.iso / extras / languages / smalltalk / _smalltalk / tests / prime3 < prev    next >
Encoding:
Text File  |  1987-12-30  |  693 b   |  30 lines

  1. Class Main
  2. [
  3.      main | x gen |
  4.           gen <- Primes new.
  5.           (smalltalk time: [
  6.           x <- gen first.
  7.           [x < 300]
  8.                whileTrue: [ x print. x <- gen next] ]) print
  9. ]
  10. Class Primes
  11. | prevPrimes lastPrime |
  12. [
  13.      first
  14.           prevPrimes <- LinkedList new.
  15.           prevPrimes add: (lastPrime <- 2).
  16.           ^ lastPrime
  17. |
  18.      next
  19.           [lastPrime <- lastPrime + 1.
  20.            self testNumber: lastPrime]
  21.                whileFalse.
  22.           prevPrimes addLast: lastPrime.
  23.           ^ lastPrime
  24. |
  25.      testNumber: n
  26.           prevPrimes do: [:x | 
  27.                (x squared > n) ifTrue: [ ^ true ].
  28.                (n \\ x = 0) ifTrue: [ ^ false ] ]
  29. ]
  30.