今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル オリジナルの prime.bas のソース
投稿日: 2024/03/07(木) 22:43
投稿者konno
 番 号 11150    11135 番 konno さんへのコメント    コメント数 1

オリジナルの prime.bas のソースはこれだけです。

INPUT n
IF MOD(n,2)=0 THEN
  IF n=2 THEN PRINT "素数" ELSE PRINT "合成数"
ELSE
  FOR i=3 TO SQR(n) STEP 2
    IF MOD(n,i)=0 THEN EXIT FOR 
  NEXT i
  IF i<=SQR(n) THEN PRINT "合成数" ELSE PRINT "素数"
END IF
END


IF 〜 ELSE 〜 END IF をうまく使ってシンプルでエレガントですね。
TurboBasic で同じやり方はわからなかったので、自分なりに改造したのが以下

FOR i=2 TO n 
  IF i=2 THEN gosub PRINT i;:c=c+1		' 2 素数
  i2=i/2:i3=int(i/2):IF i2=i3 THEN goto EXIT2	' 合成数
  FOR j=3 TO SQR(i) STEP 2			' 偶数をスキップ
    i2=i/j:i3=int(i/j):IF i2=i3 THEN goto EXIT1 ' 合成数
  NEXT j
EXIT1:
  IF j>SQR(i) THEN gosub PRINT i;:c=c+1		' 素数
EXIT2:
NEXT i:i=i-1

としきさんにループの抜け方が強引と言われたけど、うーむ・・・

    IF MOD(n,i)=0 THEN EXIT FOR 
ここは
    i2=i/j:i3=int(i/j):IF i2=i3 THEN goto EXIT1 ' 合成数
             ↓
    i2=i/j:i3=int(i/j):IF i2=i3 THEN i=i+1	' 合成数
にすればよかったのかな。
つい、EXIT という構文に引っ張られたような・・・(^^;

    - No.11150 一括表示へ   -   コメント元:11135 一括表示へ  -    [ 返信 ]    [引用無し] pre


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
11135.TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/05-00:40
  ┣11137.Re: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/05-13:22
  ┃┗11140.Re^2: TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/05-15:56
  ┃ ┗11147.Re^3: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/07-02:18
  ┃  ┗11149.Re^4: TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/07-22:28
  ┃   ┗11160.Re^5: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/12-12:32
  ┃    ┣11162.Re^6: TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/12-23:45
  ┃    ┗11164.Re^6: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/17-17:26
  ┃     ┗11170.Re^7: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/22-23:15
  ┃      ┗11172.Re^8: N88-BASICで素数を表示カウントする PRIME88.BAS - としき 24/03/24-15:59
  ┃       ┣11173.Re^9: N88-BASICで素数を表示カウントする PRIME88.BAS - konno 24/03/25-02:00
  ┃       ┃┣11174.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - としき 24/03/25-23:13
  ┃       ┃┃┗11175.PRIME88.BAS で 「169=素数?」問題 - konno 24/03/26-20:11
  ┃       ┃┃ ┣11177.Re: PRIME88.BAS で 「169=素数?」問題解決か - konno 24/03/27-22:56
  ┃       ┃┃ ┗11192.Re: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/05-02:07
  ┃       ┃┃  ┗11195.Re^2: PRIME88.BAS で 「169=素数?」問題 - konno 24/04/06-02:05
  ┃       ┃┃   ┣11198.Re^3: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/06-11:27
  ┃       ┃┃   ┗11199.Re^3: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/06-14:51
  ┃       ┃┃    ┗11200.Re^4: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/06-23:09
  ┃       ┃┃     ┗11202.Re^5: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/07-01:17
  ┃       ┃┃      ┗11203.Re^6: PRIME88.BAS で 「169=素数?」問題 - konno 24/04/07-20:41
  ┃       ┃┃       ┗11204.Re^7: PRIME88.BAS で 「169=素数?」問題 - konno 24/04/08-01:46
  ┃       ┃┃        ┗11205.Re^8: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/08-12:28
  ┃       ┃┃         ┗11206.SQRの単精度と倍精度の表示検証ソース - konno 24/04/08-23:33
  ┃       ┃┃          ┗11207.Re: SQRの単精度と倍精度の表示検証ソース - としき 24/04/09-15:06
  ┃       ┃┃           ┗11208.Re^2: SQRの単精度と倍精度の表示検証ソ.. - konno 24/04/09-22:44
  ┃       ┃┃            ┗11209.Re^3: SQRの単精度と倍精度の表示検証ソ.. - としき 24/04/10-17:44
  ┃       ┃┃             ┣11210.Re^4: SQRの単精度と倍精度の表示検証.. - konno 24/04/10-21:56
  ┃       ┃┃             ┃┗11211.Re^5: SQRの単精度と倍精度の表示検証.. - としき 24/04/10-23:25
  ┃       ┃┃             ┃ ┗11213.Re^6: SQRの単精度と倍精度の表示検.. - konno 24/04/11-20:13
  ┃       ┃┃             ┗11215.Re^4: SQRの単精度と倍精度の表示検証.. - としき 24/04/13-01:13
  ┃       ┃┃              ┗11216.Re^5: SQRの単精度と倍精度の表示検証.. - konno 24/04/13-22:03
  ┃       ┃┃               ┗11218.Re^6: SQRの単精度と倍精度の表示検.. - としき 24/04/14-12:14
  ┃       ┃┃                ┗11219.Re^7: SQRの単精度と倍精度の表示検.. - konno 24/04/15-01:15
  ┃       ┃┃                 ┗11220.Re^8: SQRの単精度と倍精度の表示.. - としき 24/04/15-13:56
  ┃       ┃┃                  ┗11221.Re^9: SQRの単精度と倍精度の表示.. - konno 24/04/16-00:04
  ┃       ┃┃                   ┗11222.Re^10: SQRの単精度と倍精度の表.. - としき 24/04/16-12:22
  ┃       ┃┃                    ┗11223.Re^11: SQRの単精度と倍精度の.. - konno 24/04/16-23:58
  ┃       ┃┃                     ┗11224.Re^12: SQRの単精度と倍精度の.. - としき 24/04/17-02:14
  ┃       ┃┃                      ┗11225.Re^13: SQRの単精度と倍精度.. - konno 24/04/17-23:21
  ┃       ┃┣11176.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - konno 24/03/27-00:26
  ┃       ┃┃┣11178.Re^11: N88-BASICで素数を表示カウントする PRIME88... - としき 24/03/28-00:43
  ┃       ┃┃┃┗11179.SQRの計算式 - konno 24/03/30-15:58
  ┃       ┃┃┃ ┗11180.Re: SQRの計算式 - としき 24/03/30-23:41
  ┃       ┃┃┃  ┗11184.Re^2: SQRの計算式 - konno 24/03/31-22:26
  ┃       ┃┃┗11182.Re^11: N88-BASICで素数を表示カウントする PRIME88... - としき 24/03/31-15:48
  ┃       ┃┗11181.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - としき 24/03/31-14:09
  ┃       ┗11183.Re^9: N88-BASICで素数を表示カウントする PRIME88.BAS - としき 24/03/31-16:08
  ┃        ┗11185.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - konno 24/04/01-00:27
  ┃         ┣11186.T98-NEXT でN88BASIC検証 - konno 24/04/02-00:16
  ┃         ┗11187.Re^11: N88-BASICで素数を表示カウントする PRIME88... - としき 24/04/03-16:20
  ┃          ┗11189.Re^12: N88-BASICで素数を表示カウントする PRIME88.. - konno 24/04/04-01:01
  ┃           ┗11191.Re^13: N88-BASICで素数を表示カウントする PRIME8.. - としき 24/04/04-12:15
  ┃            ┗11194.Re^14: N88-BASICで素数表示の問題 - konno 24/04/06-01:40
  ┃             ┗11197.Re^15: N88-BASICで素数表示の問題 - としき 24/04/06-11:26
  ┗11150.オリジナルの prime.bas のソース - konno 24/03/07-22:43
   ┗11156.Re: オリジナルの prime.bas のソース - としき 24/03/10-18:50
    ┣11158.Re^2: オリジナルの prime.bas のソース - konno 24/03/11-00:45
    ┃┗11159.Re^3: オリジナルの prime.bas のソース - としき 24/03/12-02:16
    ┃ ┗11161.MOD と ¥ の有効範囲 - konno 24/03/12-22:45
    ┃  ┗11165.Re: MOD と ¥ の有効範囲 - konno 24/03/18-00:36
    ┃   ┗11166.Re^2: MOD と ¥ の有効範囲 - としき 24/03/20-01:44
    ┃    ┗11167.Re^3: MOD と ¥ の有効範囲 - konno 24/03/21-00:00
    ┃     ┗11168.Re^4: MOD と ¥ の有効範囲 - としき 24/03/21-11:14
    ┃      ┗11171.Re^5: MOD と ¥ の有効範囲 - konno 24/03/24-00:08
    ┗11163.Re^2: オリジナルの prime.bas のソース - としき 24/03/17-17:09
     ┗11169.Re^3: オリジナルの prime.bas のソース - としき 24/03/22-23:02

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]