--- a/Integer.st Tue Apr 18 11:29:52 2006 +0200
+++ b/Integer.st Tue Apr 18 11:43:10 2006 +0200
@@ -878,7 +878,8 @@
^Array streamContents:[:s| self primesUpTo: max do:[:prime| s nextPut: prime]]
"
- Integer primesUpTo: 100
+ Integer primesUpTo: 100
+ (Integer primesUpTo: 100) select:[:p | (p >= 10) & (p <= 99)]
"
!
@@ -3399,6 +3400,38 @@
(i.e. can be used in constant arrays)"
^ true
+!
+
+isPrime
+ "return true if I am a prime Number"
+
+ self even ifTrue:[^ false].
+ 3 to:(self sqrt + 1) by:2 do:[:i |
+ (self \\ i) == 0 ifTrue:[ ^ false ].
+ ].
+ ^ true
+!
+
+nextPrime
+ "return the next prime after the receiver"
+
+ |num|
+
+ num := self + 1.
+ num even ifTrue:[
+ num := num + 1
+ ].
+ [num isPrime] whileFalse:[
+ num := num + 2
+ ].
+ ^ num
+
+ "
+ 22 nextPrime
+ 37 nextPrime
+ 36 nextPrime
+ 3456737 nextPrime
+ "
! !
!Integer methodsFor:'tracing'!
@@ -3675,7 +3708,7 @@
!Integer class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.185 2006-03-10 12:34:46 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.186 2006-04-18 09:43:10 cg Exp $'
! !
Integer initialize!