is5(Sum):- Sum1 is sqrt(1+24*Sum), integer(Sum1)^2=:=1+24.0*Sum, integer(Sum1+1) mod 6=:=0. check(K):- between(1,K,A), (K=<A^2->!,fail;true), K mod A=:=0, B is K//A, M1 is B-3*A+1, M1 mod 6=:=0, M1>0, M2 is M1//6, N2 is A+M2, SumA is N2*(3*N2-1)//2, SumB is M2*(3*M2-1)//2, SumC is SumA+SumB, is5(SumC), !. main:- between(1,5000,K), K1 is K*(3*K-1), K2 is K1//2, check(K1), write(K2).