Problem 3 最大の素因数

問題

% problem 3

solve:-
	write('600851475143 = '),
	div_mod0(600851475143,2),
	!.

div_mod0(1,_):-
	!,
	write('1').
div_mod0(BaseNum,DivNum):-
	BaseNum mod DivNum =:= 0,
	Divided is BaseNum / DivNum,
	DivNum1 is 2,
	write(DivNum),write(' * '),
	div_mod0(Divided,DivNum1).

div_mod0(BaseNum,DivNum):-
	DivNum1 is DivNum + 1,
	div_mod0(BaseNum,DivNum1).

実行結果:

1 ?- time(solve).
***********************(解答伏せます)**********************
% 18,489 inferences, 0.016 CPU in 0.016 seconds (100% CPU, 1183296 Lips)
true.

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です