2013-06-14 2 views
6

Im пытается конвертировать программу, которую я сделал в Basic! (QBASIC на iOS) на Python. Я медленно прокладываю себе путь через Python для чайников, но я зациклился на том, как преобразовать FOR loops. Может кто-нибудь помочь? Bellow - это код QB.Преобразование программы из QBasic в Python

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 

Это программа, которую я и мой сын сделали на Basic! (QBasic для iOS), который отображает все простые числа до предела, введенного пользователем, с некоторыми добавленными частями, которые пропускают очевидные не простые числа. О, и это включает в себя небольшую проверку скорости, что мы видели разницу между процессорами iPhone и iPad.

ответ

4
FOR posprime = 3 TO limit STEP 2 

Выше линии могут быть переведены в следующий код Python (ограничение монопольного):

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

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

+1

Он должен пойти, чтобы ограничить + 1: Диапазон (3, предел + 1, 2) –

+1

Благодарим за ответы. Таким образом, верхний предел диапазона до, но не включая, следовательно, требуется ограничение + 1? – BlackDuke07

+1

@ user2486954, Да. – falsetru