2009/10/25 Andres Valloud <[email protected]>:
>
> 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
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to