ユーザ用ツール

サイト用ツール


エラトステネスの篩

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
エラトステネスの篩 [2019/05/21 16:56] – [プログラム] arakiエラトステネスの篩 [2022/01/06 11:31] – [プログラム] araki
行 32: 行 32:
 つまり、作業領域として素数をストックしておく領域は高々41あれば事足りるので、IchigoJam BASICで扱える全ての素数を列挙すること自体は可能である。 つまり、作業領域として素数をストックしておく領域は高々41あれば事足りるので、IchigoJam BASICで扱える全ての素数を列挙すること自体は可能である。
  
-このコードは次のようになる。+このコードは次のようになる。なお、素数2は、ターゲットから偶数を除外―3から開始して、2ずつ増加する、即ち奇数のみ―しているので、自明であることから除外して処理している。
  
 <code> <code>
 100 'LIST PRIME NUMBERS 100 'LIST PRIME NUMBERS
-110 CLT:[0]=2:N=1:T=3 +110 CLS:CLT:[0]=3:N=1:T=3 
-120 I=1 +120 I=0 
-130 IF I<102 THEN W=[I] ELSE END +130 IF I<102 W=[I] ELSE GOTO 220 
-140   IF W*W>THEN GOTO 170 +140   IF W*W>T GOTO 170 
-150   IF T%W=0 THEN GOTO 200+150   IF T%W=0 GOTO 200
 160 I=I+1:IF I<N THEN GOTO 130 160 I=I+1:IF I<N THEN GOTO 130
-170 LOCATE 0,0:? "[";N;"]->";+170 LC 0,0:? "[";N;"]->";
-180 IF N<102 THEN [N]=T ELSE END+180 IF N<102 [N]=T
 190 N=N+1 190 N=N+1
 200 T=T+2 200 T=T+2
-210 IF T>THEN GOTO 120 +210 IF T>0 GOTO 120 
-220 LOCATE 0,0:? TICK()/60;" Sec"+220 LC 0,1:? TICK()/60;" Sec"
 230 END 230 END
 </code> </code>
エラトステネスの篩.txt · 最終更新: 2022/01/06 18:31 by araki