BBS: Inland Empire Archive Date: 12-03-92 (23:13) Number: 395 From: ERIC B. FORD Refer#: NONE To: MICHEL BERTLER Recvd: NO Subj: Prime numbers gen. Conf: (2) Quik_Bas
> Your program is quite fast! However, could you make it
> ask for a user
> input (upper limit) and redirect its output into a
> readable Ascii file rather than on the screen?
Well, here's a version to have an upper limit. (For above
32767 change to LONGs) To redirect it to an ASCII file you
can just compile and then do something like:
PRIME >Primes.txt
' Load QB with the "/l" option
DIM prime(32767) AS INTEGER: CLS
PRINT " Prime Number Generater"
PRINT " Eric Ford"
PRINT
PRINT "What number would you like to end checking at?"
INPUT Last%
PRINT : PRINT
INPUT "Filename (Leave blank for screen)"; File$
PRINT "The numbers below are prime. Now testing..."
tim1 = TIMER: half% = Last% / 2 + 1
FOR i% = 3 TO half% STEP 2
j% = 2
WHILE j% * i% <= Last%
prime(j% * i%) = 1
j% = j% + 1
WEND
NEXT i%
FOR j% = 4 TO Last% STEP 2
prime(j%) = 1
NEXT j%
FOR First% = 1 TO 3
prime(First%) = 0
NEXT First%
tim2 = TIMER
IF len(ltrim$(rtrim$(File$))) = 0 then
FOR i% = 2 TO Last%
IF prime(i%) = 0 THEN primes = primes + 1: PRINT i%
NEXT i%
else
open file$ for output as #1
for i% = 2 to Last%
if prime(i%) = 0 then
primes = primes + 1
print #1, i%
end if
next i%
close
end if
tim = tim2 - tim1
PRINT " --- Done --- "; primes;
PRINT " primes computed in"; tim; "seconds"
A good deal of this is from the message editor and not QB,
so beware of minor mistooks.
---
* Origin: Eric Ford (1:3632/1.6)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET