2009/10/25 Andres Valloud <avalloud@smalltalk.comcastbiz.net>:
isPrime
  | guess guessSquared delta selfSqrtFloor |   self <= 1 ifTrue: [^self error: 'operation undefined'].   self even ifTrue: [^self = 2].   guess := 1 bitShift: self highBit + 1 // 2.   [     guessSquared := guess * guess.     delta := guessSquared - self // (guess bitShift: 1).     delta = 0   ] whileFalse: [guess := guess - delta].   guessSquared = self ifFalse: [guess := guess - 1].   selfSqrtFloor := guess.   3 to: selfSqrtFloor by: 2 do: [:each | self \\ each = 0 ifTrue: [^false]].   ^true
Also, the above code can be used to implement sqrtFloor and sqrtRounded in Integer. Â I am sure Nicolas Cellier remembers this :).
If http://bugs.squeak.org were not down, I would even provide a link with these enhancements
Andres.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project