'소수판별'에 해당되는 글 3건

  1. 2012.03.30 [오일러프로젝트] 49번문제
  2. 2012.03.19 [오일러프로젝트] 41번문제
  3. 2012.03.11 [오일러프로젝트] 37번문제


1487, 4817, 8147은 3330씩 늘어나는 등차수열입니다. 이 수열에는 특이한 점이 두 가지 있습니다.

  • 세 수는 모두 소수입니다.
  • 세 수는 각각 다른 수의 자릿수를 바꿔서 만들 수 있는 순열(permutation)입니다.

1자리, 2자리, 3자리의 소수 중에서는 위와 같은 성질을 갖는 수열이 존재하지 않습니다. 하지만 4자리라면 위엣것 말고도 또 다른 수열이 존재합니다.

그 수열의 세 항을 이었을 때 만들어지는 12자리 숫자는 무엇입니까?


우선..4자리의 소수들을 구하고
brute-force를 통해서 등차수열을 만족하는 3개의 수를 구하고 그 3개의 수가
순열조합으로 나올 수 있는 수인지 확인...


Python
조금 만지면 더 빠르게 될 것 같은데... 일단 skip. 근데 계속 파이썬으로만 풀게되네...;; 

Ruby
Perl


Posted by 용식


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

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



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

 

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


소수 3797에는 왼쪽부터 자리수를 하나씩 없애거나 (3797, 797, 97, 7) 오른쪽부터 없애도 (3797, 379, 37, 3) 모두 소수가 되는 성질이 있습니다.

이런 성질을 가진 소수는 단 11개만이 존재합니다. 이것을 모두 찾아서 합을 구하세요.

(참고: 2, 3, 5, 7은 제외합니다)


특별한 내용은 없는 문제

 

2,3,5,10등을 이용하여 loop 조건을 더 타이트하게 주었으면 좀 더 빨리 끝났을듯..

Ruby
Perl
Posted by 용식