|
すいません、確かに結果が中途半端に違っていますね。 そもそもエラトステネスのふるいのソース自体変です。150行と170行を変更すると 1027個となりました。
50 "START" / 60 F=$0400 100 I=1,1000 110 C=0 120 J=0,8190 130 F:J)=1 140 @=J+1 150 J=2,8190 160 ;=F:J)=0 #=200 170 P=J 180 K=J+P,8190 190 F:K)=0 195 @=K+P 196 C=C+1 200 @=J+1 205 @=I+1 210 ?=C "PRIMES" / 220 "END" #=-1
rvtl ではFOR文の増分を変数にできないので以下のように変更して実行しました。 60 F=& 100 I=1,1000 105 ?=I / 110 C=0 120 J=0,8190 130 F(J)=1 140 @=J+1 150 J=2,8190 160 ;=F(J)=0 #=200 170 P=J 180 K=P 185 @ 190 F(K)=0 195 K=K+P 196 @=(K>8190) 198 C=C+1 200 @=J+1 205 @=I+1 210 ?=C "PRIMES" / 220 "END" #=-1
この場合は game86 と結果が一致しました。game86のコンパイルに問題があるのは明らかですが、 問題の場所をちょっと特定できませんでした。20年前のソースなので、修正は勘弁して下さい。
|