mod_pow(N,0,_,N):-!. mod_pow(N,R,M,Result):- R mod 2=:=1, !, N1 is (N*M) mod 10^10, R1 is R//2, M1 is (M*M) mod 10^10, mod_pow(N1,R1,M1,Result). mod_pow(N,R,M,Result):- M1 is (M*M) mod 10^10, R1 is R//2, mod_pow(N,R1,M1,Result). main:- mod_pow(1,7830457,2,R), R1 is (R*28433+1) mod 10^10, write(R1).