今天上午到学校培训,老师让我们用QBasic写一个程序,可以算出2到10000的所有质数,我是这样写的
FOR n = 2 TO 10000
k = 1
FOR i = 2 TO n - 1
IF (n MOD i) = 0 THEN
k = 0
END IF
NEXT i
IF k = 1 THEN
PRINT n;
END IF
NEXT n
这算是最简单的求质数的算法了,在我的P42.5上大概用了2分钟
看我老师的
n = 10000
DIM arr(n)
FOR i = 2 TO SQR(n)
IF arr(i) = 0 THEN
FOR j = i * i TO n STEP i
arr(j) = 1
NEXT j
END IF
NEXT i
FOR k = 1 TO n
IF arr(k) = 0 THEN
PRINT k;
END IF
NEXT k
这个在学校P3 800MHz上瞬间算出
由此可以看出算法的重要性