主题:请教一个素数的问题,谢谢!!!
题目: 找出100--200间的全部素数.
书上的程序是:
FOR n=101 TO 200 STEP 2
k=INT(SQR(n))
i=2
flag=0
WHILE i<=k AND flag=0
IF n MOD i=0 THEN flag =1 ELSE i=i+1
WEND
IF flag=0 THEN PRINT n,
NEXT n
END
无疑,书上的程序是对的.可我有个问题,就是当我把WHIEL句改成WHILE i<=k.
不要AND flag=0其它的都不变,程序就不能正常运行了。
我原来以为加AND flag=0的目的是为了提高程序运行效率,加不加都一样,但现
在看来好像这半句话必不可少。谁能告诉我为什么呀?还有是不是FLAG只能设为1或0
,设为别的数行么?
这个是我自已编的:
FOR i=100 TO 200
k=INT(SQR(i))
flag=0
FOR n=2 TO k
IF i mod n THEN flag=1
NEXT n
IF flag=0 THEN PRINT i,
NEXT i
END
请指正,谢谢。
书上的程序是:
FOR n=101 TO 200 STEP 2
k=INT(SQR(n))
i=2
flag=0
WHILE i<=k AND flag=0
IF n MOD i=0 THEN flag =1 ELSE i=i+1
WEND
IF flag=0 THEN PRINT n,
NEXT n
END
无疑,书上的程序是对的.可我有个问题,就是当我把WHIEL句改成WHILE i<=k.
不要AND flag=0其它的都不变,程序就不能正常运行了。
我原来以为加AND flag=0的目的是为了提高程序运行效率,加不加都一样,但现
在看来好像这半句话必不可少。谁能告诉我为什么呀?还有是不是FLAG只能设为1或0
,设为别的数行么?
这个是我自已编的:
FOR i=100 TO 200
k=INT(SQR(i))
flag=0
FOR n=2 TO k
IF i mod n THEN flag=1
NEXT n
IF flag=0 THEN PRINT i,
NEXT i
END
请指正,谢谢。