#!/usr/bin/python3
#coding:utf8

# http://projecteuler.net/problem=29
#
# PROBLEM CONTENT:
# 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 for 2 ≤ a ≤ 100 and
# 2 ≤ b ≤ 100?

import time

def main():
    results = []
    for a in range(2, 101):
        for b in range(2, 101):
            res = a**b
            if res not in results:
                results.append(res)

    print(len(results))

if __name__ == '__main__':
    start = time.time()
    main()
    elapsed = time.time() - start
    print('Solved in %.2f seconds' % elapsed)
