6

我正在尝试转换我在 Basic 中制作的程序!(iOS 上的 QBASIC)到 Python。我正在慢慢地通过 Python for Dummies 工作,但我被困在如何转换 FOR 循环上。有人可以帮忙吗?下面是QB代码。

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 上制作的程序!(iOS 的 QBasic)显示所有质数,直到用户输入的限制,并添加了一些跳过明显的非质数的部分。哦,它还包括我们用来查看 iPhone 和 iPad 处理器之间差异的一点速度检查。

4

1 回答 1

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

于 2013-06-14T17:26:05.903 回答