2009/10/25 Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com>:
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
google says it should be http://www.google.fr/bugs.squeak.org/view.php?id=7099. Or go to the source http://blogten.blogspot.com/2008/06/drove-to-reno-today.html http://blogten.blogspot.com/2008/06/update-on-sqrtrounded.html
Andres.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project