新しく発言する  EXIT  インデックスへ

最小公倍数


  最小公倍数 R-7 2008/03/25 08:45:18 
  筆算のように倍数を列挙して求めてみると、... 山中和義 2008/03/25 10:38:42  (修正2回)
  最大公約数から求める方法もあります 荒田浩二 2008/03/25 18:07:59 

  最小公倍数 R-7 2008/03/25 08:45:18   ツリーへ
最小公倍数  返事を書く  ノートメニュー
R-7 <zswltnpfwu> 2008/03/25 08:45:18
最小公倍数を求めるプログラムが作れません!教えてください!
  筆算のように倍数を列挙して求めてみると、... 山中和義 2008/03/25 10:38:42  (修正2回)  ツリーへ
Re: 最小公倍数  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/03/25 10:38:42 ** この記事は2回修正されてます
筆算のように倍数を列挙して求めてみると、、、


INPUT a,b !2つの正の整数を得る

FOR m=1 TO 20 !※調整要
PRINT a*m; !aの倍数を表示する
NEXT m
PRINT
FOR n=1 TO 20
PRINT b*n; !bの倍数を表示する
NEXT n
PRINT
!表示された数列中の最初に一致した数が最小公倍数になる。

END





倍数を模索するように改良すると、、、

●その1


INPUT a,b !2つの正の整数を得る

FOR m=1 TO b !aの倍数の中で、bで割り切れるものを探す
IF MOD(a*m,b)=0 THEN PRINT a*m !公倍数
NEXT m

END



●その2


INPUT a,b !2つの正の整数を得る

LET m=1 !1倍
LET n=1

LET am=a*m !aのm倍、bのn倍
LET bn=b*n
PRINT am;bn

DO UNTIL am=bn !一致するまで
IF am>bn THEN
LET n=n+1 !倍数を増やす
ELSE
LET m=m+1
END IF

LET am=a*m !次へ
LET bn=b*n
PRINT am;bn
LOOP

PRINT a;"の";m;"倍"
PRINT b;"の";n;"倍"
PRINT "最小公倍数=";am

END
  最大公約数から求める方法もあります 荒田浩二 2008/03/25 18:07:59   ツリーへ
Re: 最小公倍数  返事を書く  ノートメニュー
荒田浩二 <knrztrhoel> 2008/03/25 18:07:59
最大公約数から求める方法もあります

REM 最小公倍数を求める
!十進BASICサンプルプログラム"\DECIMAL BASIC\BASICw32\Math\GCDLOOP.BAS"参照
100 REM 互除法により,入力された2数の最大公約数を求める
110 INPUT a,b
LET k1=a
LET k2=b
120 DO
130 LET r=MOD(k1,k2)
140 IF r=0 THEN EXIT DO
150 LET k1=k2
160 LET k2=r
170 LOOP
180 PRINT a;b
PRINT "最大公約数";k2
PRINT "最小公倍数";a*b/k2
190 END


 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。