2013-06-14 2 views
6

Ich versuche ein Programm zu konvertieren, das ich in Basic gemacht habe! (QBASIC auf iOS) zu Python. Ich arbeite mich langsam durch Python für Dummies, aber ich bin fest, wie man FOR-Loops konvertiert. Kann jemand helfen? Balg ist der QB-Code.Programm von QBasic nach Python konvertieren

REM Prime Numbers v2 

REM Av 2.2 seconds for 1000 
REM Av 5.3 seconds for 2000 

INPUT "Prime numbers upto";limit 
PRINT 
t1 = TickCount 
PRINT "2 3 "; 
count = 2 
FOR posprime = 3 TO limit STEP 2 
    posfactor = 3 
    prime = 1 
    GOSUB testing 
    IF prime = 1 THEN 
     PRINT posprime " "; 
     count = count + 1 
    END IF 
NEXT posprime 
t2 = TickCount 
PRINT 
PRINT 
PRINT count " prime numbers found" 
PRINT USING "####.#"; "Completed in" t2 - t1 " seconds" 
END 

testing: 
IF posprime/posfactor = INT(posprime/posfactor) THEN 
    prime = 0 
    RETURN 
ELSE 
    posfactor = posfactor + 2 
    IF posfactor > SQR(posprime) THEN 
     RETURN 
    ELSE 
     GOTO testing 

Es ist ein Programm, das ich und mein Sohn auf Basic! (QBasic für iOS), das alle Primzahlen bis zu dem Limit anzeigt, das vom Benutzer mit einigen zusätzlichen Teilen eingegeben wurde, die offensichtliche Nicht-Primzahlen überspringen. Oh, und es beinhaltet eine kleine Geschwindigkeitsüberprüfung, dass wir den Unterschied zwischen iPhone und iPad Prozessoren sahen.

Antwort

4
FOR posprime = 3 TO limit STEP 2 

Above Zeile übersetzt in folgendem Python-Code wird (Limit exklusiv):

for posprime in range(3, limit, 2): 

http://docs.python.org/2/library/functions.html#range

+1

Es gehen muss + 1 zu begrenzen: Bereich (3, Grenze + 1, 2) –

+1

Vielen Dank für die Antworten. Also Bereich Obergrenze ist bis zu, aber nicht einschließlich, also Limit + 1? – BlackDuke07

+1

@ user2486954, Ja. – falsetru