'팬지디털생성'에 해당되는 글 2건

  1. 2012.03.24 [오일러프로젝트] 43번문제
  2. 2012.03.19 [오일러프로젝트] 41번문제


숫자 1406357289은 0 ~ 9 팬디지털인데, 부분열에 관련된 재미있는 성질을 가지고 있습니다.

d1을 첫째 자리수, d2를 둘째 자리수...라고 했을 때, 다음과 같은 사실을 발견할 수 있습니다.

  • d2 d3 d4 = 406 → 2로 나누어 떨어짐
  • d3 d4 d5 = 063 → 3으로 나누어 떨어짐
  • d4 d5 d6 = 635 → 5로 나누어 떨어짐
  • d5 d6 d7 = 357 → 7로 나누어 떨어짐
  • d6 d7 d8 = 572 → 11로 나누어 떨어짐
  • d7 d8 d9 = 728 → 13으로 나누어 떨어짐
  • d8 d9 d10 = 289 → 17로 나누어 떨어짐

위와 같은 성질을 갖는 0 ~ 9 팬디지털을 모두 찾아서 그 합을 구하면 얼마입니까?


팬디지털 생성만 알면 그 다음은 그냥 평이한문제..
순열을 사용해 10자리 팬디지털을 생성 후 조건에 맞는 것을 찾음


 

Python
Ruby
Perl
Posted by 용식


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

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



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

 

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