2014年3月10日月曜日

プロジェクトオイラー問3

Problem 3 「最大の素因数」 

13195 の素因数は 5, 7, 13, 29 である.
600851475143 の素因数のうち最大のものを求めよ.

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%203



解法
Prolog言語

divs(N,D,N):-N mod D>0,!.
divs(N,D,Result):-
     !,
     N1 is N//D,
     divs(N1,D,Result).
soinnsu(1,_,[]):-!.
soinnsu(N,D,[N]):-
     N<D*D,
     !.
    
soinnsu(N,D,[D|Result]):-
     N mod D=:=0,
     !,
    divs(N,D,N1),
     D1 is D+1,
     soinnsu(N1,D1,Result).
soinnsu(N,D,Result):-
     D1 is D+1+(D mod 2),
     !,
     soinnsu(N,D1,Result).
    
main3:-
     soinnsu(600851475143,2,Ans),

     write(Ans).

0 件のコメント:

コメントを投稿