【第6回】演習(1)約数・素数 |
例題16 素数
2以上の自然数nが素数であるかを判定するプログラムを作れ。 |
(LIST) 1: INPUT "n=";n 2: k=2 3: DO WHILE k<n 4: r=n-k*INT(n/k) '自然数nを自然数kで割ったときの商をqとすると 5: IF r=0 THEN ' q=INT(n/k) ・・・(1) 6: PRINT n;"は素数ではない" '余りをrとすると 7: END ' n=kq+r ・・・(2) 8: ENDIF '(1)(2)より 9: k=k+1 ' r=n-k*INT(n/k) 10: LOOP 11: PRINT n;"は素数である"
<類題16>200以下の自然数について素数を全て表示するプログラムを作れ。
(OUTPUT) 2, 3, 5, 7, 13, 17, ・・・, 199
例題17 最大公約数
2つの自然数a,b(a>b)の最大公約数を求めるプログラムを作れ。 |
(LIST) 1: INPUT "a=";a 2: INPUT "b=";b 3: r=a MOD b 'aをbで割ったときの余りをrとする 4: DO WHILE r<>0 'r<>0ならbを改めてa,rをbとして繰り返す 5: a=b 'r=0ならG.C.Mをbとする 6: b=r 7: r=a MOD b 8: LOOP 9: PRINT "最大公約数は";b
<類題17>自然数nが与えられたとき、nの約数を表示するプログラムを作れ。
(OUTPUT) ?24 1, 2, 3, 4, 6, 8, 12, 24