このディレクトリの索引

# 出典::C/C++の宿題片付けます 145代目 #89 # [1] 授業単元:Cプログラミング入門2 # [2] 問題文(含コード&リンク): # 複数の自然数に対する最小公倍数を求めるプログラムを作成せよ。 # 最小公倍数を求める関数を作成する必要あり # int型のオーバーフローは考慮しないで良い。 # 関数名はlcm # int lcm(int num0,int num1) # num1 num2は入力値 # lcmの戻り値は最小公倍数 # 入力に関して:キーボードから入力する整数の個数を入力し(最大10)改行する次に指定した数の整数を入力するように作る # 最小公倍数(_1,_2,_最小公倍数) :- '第一引数、第二引数がともに整数である時、最小公倍数は第一引数、第二引数の積を最大公約数で除したもの。'(_1,_2,_最小公倍数). '第一引数、第二引数がともに整数である時、最小公倍数は第一引数、第二引数の積を最大公約数で除したもの。'(_1,_2,_最小公倍数) :- '第一引数、第二引数がともに整数である時、'(_1,_2), '最小公倍数は第一引数、第二引数の積を最大公約数で除したもの。'(_1,_2,_最小公倍数). '第一引数、第二引数がともに整数である時、'(_1,_2) :- integer(_1), integer(_2). '最小公倍数は第一引数、第二引数の積を最大公約数で除したもの。'(_1,_2,_最小公倍数) :- 最大公約数をユークリッドの互除法で求める(_1,_2,_最大公約数), _最小公倍数 is _1 * _2 // _最大公約数. 最大公約数をユークリッドの互除法で求める(_1,_2,_最大公約数) :- '_1を_2で割り切ることができれば、_2が最大公約数だ。'(_1,_2,_最大公約数). 最大公約数をユークリッドの互除法で求める(_1,_2,_最大公約数) :- '_1を_2で割り切ることができなければ、_2を剰余数で割って行く。'(_1,_2,_最大公約数). '_1を_2で割り切ることができれば、_2が最大公約数だ。'(_1,_2,_最大公約数) :- 0 is _1 mod _2, _最大公約数 = _2. '_1を_2で割り切ることができなければ、_2を剰余数で割って行く。'(_1,_2,_最大公約数) :- '_1を_2で割り切ることができなければ、'(_1,_2,_剰余数), '_2を剰余数で割って行く。'(_2,_剰余数,_最大公約数). '_1を_2で割り切ることができなければ、'(_1,_2,_剰余数) :- _剰余数 is _1 mod _2, \+(_剰余数 == 0). '_2を剰余数で割って行く。'(_2,_剰余数,_最大公約数) :- 最大公約数をユークリッドの互除法で求める(_2,_剰余数,_最大公約数).