By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime
처음 6 개의 소수를 열거하면: 2, 3, 5, 7, 11, 13 입니다. 우리는 6 번째 소수가 13 임을 알 수 있습니다.
10 001 번째 소수는 무엇인가요?
Brute-Force
일단 Brute-Force 기법으로 10,001 번째 소수를 찾아 보도록 하겠습니다. [ 3. Largest prime factor ] 에서 소수 찾기를 해 봤죠. 물론 list 에다가 넣다가 ( 성능 문제로 ) 실패했지만, 이제는 소수를 모두 찾아야 하는 시점이 왔습니다.
[ 1 ] 에서 언급했듯이 다음과 같은 규칙을 통해 계산을 줄일 수 있습니다.
이 중에서 1, 3, 7, 9 로 끝난다는 것의 의미는 5 의 배수가 아니라는 의미가 됩니다. 그래서 일단 list 에 2, 3, 5 를 넣어 둔 상태로 다음 홀수가 소수 조건에 위배되는지를 검사했습니다.
시간이 좀 걸리긴 했지만, 답은 104743 입니다.
Optimization
문제를 풀면 나오는 PDF 를 보니 더 많은 조건을 사용해서 하더군요. 그리고 저처럼 list 를 사용하지도 않습니다. 관심이 있으시면 확인해 보시기 바랍니다.
참고자료
[ 1 ] 소수 ( 수론 ), 위키피디아.
'물리_수학_기하학 > Project Euler' 카테고리의 다른 글
[ Project Euler With Python ] 12. Highly divisible triangular number (0) | 2019.03.08 |
---|---|
[ Project Euler With Python ] 11. Largest product in a grid (0) | 2019.02.21 |
[ Project Euler With Python ] 10. Summation of primes (0) | 2019.01.31 |
[ Project Euler With Python ] 9. Special Pythagorean triplet (0) | 2019.01.30 |
[ Project Euler With Python ] 8. Largest product in a series (0) | 2019.01.29 |
[ Project Euler With Python ] 6. Sum square difference (0) | 2019.01.24 |
[ Project Euler With Python ] 5. Smallest multiple (0) | 2019.01.23 |
[ Project Euler With Python ] 4. Largest palindrome product (0) | 2019.01.21 |
[ Project Euler With Python ] 3. Largest prime factor (0) | 2019.01.19 |
[ Project Euler With Python ] 2. Even Fibonacci numbers (0) | 2019.01.18 |