본문 바로가기

오일러프로젝트

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


1부터 n까지의 숫자를 하나씩만 써서 만든 n자리 숫자를 팬디지털(pandigital)이라고 부릅니다.
2143은 4자리 팬디지털인데, 이 수는 동시에 소수이기도 합니다.

n자리 팬디지털 소수 중에서 가장 큰 수는 무엇입니까?



가장 심플한 방식은 1 ~ 987654321까지  loop를 돌면서
소수인지 판정하는 것인데 이게 시간이 어마어마하게 걸린다...
그래서 일단 123은 제끼고 1234 ~ 123456789의 팬디지털 숫자를 모두 구한 후
이것을 소수인지 판별하며 가장 큰 것을 찾았음..

 

Python
Ruby
Perl
그런데 팬디지털 수를 만들어 List로 저장하는 로직들이 마음에 안든다.. 더 좋은 방법들이 있을 것 같은데...으..