>create cursor prime ( primenumber i ) >insert into prime value ( 3 ) > >MaxRange = 100000 > >t = seconds() >for i = 5 to MaxRange step 2 > if IsPrime(i) > insert into prime value ( i ) > endif >next >? seconds() - t > >func isprime > lpar i > local n > scan > n = prime.primenumber > if int( i / n ) = i / n > return .f. > endif > if n^2 > i > exit > endif > endscan > return .t. >What about
CREATE CURSOR Prime (primenumber i) INSERT INTO Prime VALUES (3) FOR I = 5 TO 100000 STEP 2 nSQRT = SQRT(i) GO TOP LOCATE WHILE prime.primenumber =< nSQRT FOR I % prime.primenumber = 0 IF !FOUND() INSERT INTO Prime VALUES ( i ) ENDIF ENDFORLong live the fast local data engine !! I wonder if VB can do this as fast as VFP.
SET TALK OFF SELECT Numbers GO BOTTOM MaxRange = Numbers.Num ** Generate Prime numbers CREATE CURSOR Prime (primenumber i) INSERT INTO Prime VALUES (3) FOR I = 5 TO MaxRange STEP 2 nSQRT = SQRT(i) GO TOP LOCATE WHILE prime.primenumber =< nSQRT FOR I % prime.primenumber = 0 IF !FOUND() INSERT INTO Prime VALUES ( i ) ENDIF ENDFOR INDEX ON PrimeNumber TAG Prime ** Determine the missing primenumbers in the gaps in the Numtable CREATE CURSOR Invert (un I) SELECT Numbers GO TOP nLow = Num SCAN FOR nT = nLow+1 TO Num-1 IF KEYMATCH(nT,1,"Prime") INSERT INTO Invert VALUES (nT) ENDIF ENDFOR nLow=Num ENDSCANWalter,