Sudal's Garage

Project Euler 29 본문

Programming/Project Euler - python

Project Euler 29

_Sudal 2019. 3. 17. 05:00

Question: 

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?



문제:


 2 ≤ a ≤ 5 이고 2 ≤ b ≤ 5 인 a, b에 대하여 ab 의 가능한 모든 조합을 생각해보자.

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

위 모든 수들을 중복을 제거하고 순서대로 나열하면 다음과 같이 서로 다른 15개의 수열이 된다.

4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125

2 ≤ a ≤ 100, 2 ≤ b ≤ 100 인 a, b에 대하여 위와 같이 가능한 ab를 나열한다면 서로 다른 수는 몇 개일까?


Solution:


import time

terms = set()
start = time.time()
for a in range(2,101):
    for b in range(2,101):
        terms.add(a**b)
        
print('length = {0}\nFound in ...{1:.5f}s'.format(len(terms),time.time()-start))


set 은 중복을 제거한다.

0.012 초 걸렸다.




'Programming > Project Euler - python' 카테고리의 다른 글

Project Euler 31  (0) 2019.03.24
Project Euler 30  (0) 2019.03.18
Project Euler 28  (0) 2019.03.16
Project Euler 26  (0) 2019.03.16
Project Euler 27  (0) 2019.03.15