Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
% Problem 29: Distinct powers % --------------------------- % Consider all integer combinations of a^b for 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5. If % they are then placed in numerical order, with any repeats removed, we get the % following sequence of 15 distinct terms: % % 4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125 % % How many distinct terms are in the sequence generated by a^b for 2 ≤ a ≤ 100 % and 2 ≤ b ≤ 100? % % ============================================================================= % % aggregate_all/3 is basically findall/3 on steroids. It is more than enough to % turn this problem into a two-liner. /** <examples> ?- euler029(100,100,X). */ :- use_module(library(clpfd)). :- use_module(library(aggregate),[aggregate_all/3]). :- use_module(library(statistics),[time/1]). test:- write("Testing for "), writeln(euler029(100,100,9183)), time(euler029(100,100,9183)). euler029(LA,LB,D):- A in 2..LA, B in 2..LB, aggregate_all(set(R),(label([A,B]),#=(A^B,R)),L), length(L,D).