## Project Euler 29: Find the number of distinct terms in the sequence generated by a^{b}

#### Problem Description

Consider all integer combinations of a^{b} for 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5:

2^{2}=4, 2^{3}=8, 2^{4}=16, 2^{5}=32

3^{2}=9, 3^{3}=27, 3^{4}=81, 3^{5}=243

4^{2}=16, 4^{3}=64, 4^{4}=256, 4^{5}=1024

5^{2}=25, 5^{3}=125, 5^{4}=625, 5^{5}=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 a^{b} for 2 ≤ a ≤ 100 and 2 ≤ b ≤ 100?

#### Analysis

Build a set of distinct a^{b} terms using Python’s *set* data type and print the set’s length.

#### Project Euler 29 Solution

Runs < 0.005 seconds in Python 2.7.Use this link to get the Project Euler 29 Solution Python 2.7 source.

#### Afterthoughts

- Python supports large integers inherently.
- The answer for a
^{b}for 2 ≤ a ≤ 200 and 2 ≤ b ≤ 200 is 37,774 - and for 2 ≤ a ≤ 1000 and 2 ≤ b ≤ 1000 is 977,358.
*Mathematica:*`Length@Union@Flatten@Table[a^b,{a,2,100},{b,2,100}]`

*Project Euler 29 Solution last updated*

You’re welcome Ye, it is my pleasure.

You teach me a lot,

Many thanks to you.