Distinct powers

Solved on
Uploaded on

Consider all integer combinations of ab for 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5:

22 = 4, 23 = 8, 24 = 16, 25 = 32,
32 = 9, 33 = 27, 34 = 81, 35 = 243,
42 = 16, 43 = 64, 44 = 256, 45 = 1024,
52 = 25, 53 = 125, 54 = 625, 55 = 3125

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 ab for 2 ≤ a ≤ 100 and 2 ≤ b ≤ 100?

Brute-force solution


def brute():
    dist_powers = []
    for a in range(lim_bottom, (lim_up + 1)):
        for b in range(lim_bottom, (lim_up + 1)):
            power = a**b
            if power not in dist_powers:
                dist_powers.append(power)
    print(len(dist_powers))

Execution


lim_bottom = 2
lim_up = 100

brute()

#104859th

Output


brute_force: 9183