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).
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 件のコメント:
コメントを投稿