본문 바로가기

오일러프로젝트

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


1부터 n까지의 각 숫자를 한번씩만 써서 만들 수 있는 숫자를 팬디지털(pandigital)이라고 합니다.
예를 들면 15234는 1부터 5의 숫자가 한번씩만 쓰였으므로 1 ~ 5 팬디지털입니다.

7254라는 숫자는 그런 면에서 특이한데, 39 × 186 = 7254 라는 곱셈식을 만들 때 이것이 1 ~ 9 팬디지털이 되기 때문입니다.

이런 식으로 a × b = c 가 1 ~ 9 팬디지털이 되는 모든 c의 합은 얼마입니까?

(참고: 어떤 c는 두 개 이상의 (ab)쌍에 대응될 수도 있는데, 이런 경우는 하나로 칩니다)


일단 약수를 구한 후
0이 있는 것 제외, a,b,c 합친 길이가 9가 아닌 것 제외 하는 방식으로
brute-force. 다만 상한선을 100000으로 잡은 것은 어림짐작...

 

Python
Ruby
Perl