1~20の最小公倍数を求めているだけ
プログラム:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
% problem 5 solve:- calc_lcm_all([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],Lcm), write(Lcm). % すべての数字の最小公倍数を取得 calc_lcm_all([],1):-!. calc_lcm_all([First|Rest],Lcm):- calc_lcm_all(Rest,LcmRest), lcm(First,LcmRest,Lcm). % 最小公倍数 lcm(N, M, Lcm) :- Gcd is gcd(N , M), Lcm is (N * M) // Gcd, !. |
実行結果:
1 2 3 4 5 |
[2] 9 ?- time(solve). ***********************(解答伏せます)********************** % 79 inferences, 0.000 CPU in 0.000 seconds (?% CPU, Infinite Lips) true. |