본문 바로가기

오일러프로젝트

[오일러프로젝트] 38번문제


숫자 192에 1, 2, 3을 각각 곱합니다.

192 × 1 = 192
192 × 2 = 384
192 × 3 = 576

곱한 결과를 모두 이어보면 192384576 이고, 이것은 1 ~ 9 팬디지털(pandigital)인 숫자입니다. 이런 과정을 편의상 '곱해서 이어붙이기'라고 부르기로 합니다.

같은 식으로 9와 (1, 2, 3, 4, 5)를 곱해서 이어붙이면 918273645 라는 1 ~ 9 팬디지털 숫자를 얻습니다.

어떤 정수와 (1, 2, ... , n)을 곱해서 이어붙였을 때 얻을 수 있는 가장 큰 아홉자리의 1 ~ 9 팬디지털 숫자는 무엇입니까? (단 n > 1)

일단...
맨 앞자리는 9로 시작해야 가장 클 것이라서 (예로 918273654가 나왔기 때문에 최소한 이거보다 크거나 같겠지..) 맨 처음 n은 1이 됨..

n이 3까지 가게 되면 자리 수를 넘는다.

pandigital 중 가장 큰 수는 987654321이고...

9 * (1,2) = 918
98 * (1,2) = 98916
..
9876 * (1,2) = 987619752

이 이상은 자리수가 9를 넘게 된다.

대략 탐색범위를 9000 ~ 9876으로 잡으면 될 듯 함...대략..;;;;

 


Python
Ruby
Perl