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인 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일때 ab 로 만들어지는 수열에는 몇 개의 유일한 요소가 있는가?

--------------------------------------------------------------------------

 

a와 b를 각각 2~100까지 반복하는 중첩되는 반복문을 통해 ab 목록을 구하면 되는 문제이다. 100의 100승이면 매우 큰 수인데 파이썬으로 구현하고 있기 때문에 고려하지 않아도 되었다.

 

하나 추가로 고려할 것이 중복되는 숫자를 어떻게 제거할 것인가인데, 파이썬 환경에서 2가지 방법이 가능할 것으로 생각되었다. 하나는 반복문 안에서 ab 를 구했을 때 결과 목록에 없으면 추가하는 방법이고, 다른 하나는 전체 목록을 구한 다음에 집합으로 자료형을 변환해서 중복을 자동으로 제거하게 만드는 것이다.

 

집합 자료형을 활용해 보고 싶어서 전체 목록을 구한 후에 집합으로 변환해서 중복을 제거하고, 결과값 갯수를 구하는 방법으로 해결하였다.

+ Recent posts