일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- includepdf
- 재귀함수
- 코틀린 시작하기
- homogeneous linear system
- Big Omega
- recursive algorithms
- 빅세타
- nonhomogeneous linear system
- linear dependence
- Big Theta
- 빅오 표기법
- nontrivial solution
- Big-Oh 예제
- 일차변환
- 이진 탐색
- 랜덤 순서 배열
- 페이지 겹칩
- 알고리즘 분석의 실례
- one-to-one
- itertools
- matrix fo a linear transformation
- Big-O 예제
- 배열 섞기
- trivial solution
- 빅오메가
- NumPy
- 코틀린 Hello World!
- python
- Big-Oh notation
- matrix trnasformations
- Today
- Total
코딩 연습
프로젝트 오일러 131번 본문
There are some prime values, p, for which there exists a positive integer, n, such that the expression n3+n2p is a perfect cube.
For example, when p=19,83+82×19=123.
What is perhaps most surprising is that for each prime with this property the value of n is unique, and there are only four such primes below one-hundred.
How many primes below one million have this remarkable property?
소수 p 에 대하여 n3+n2p 가 어떤 수의 세제곱이 되는 자연수 n 이 존재하는 경우가 있다. 예를 들어, p=19 일 때, n=8 이면 83+72×19=123 이 된다.
놀라운 것은 만약 어떤 소수 p 에 대하여 위 조건을 만족하는 자연수 n 이 존재한다면 유일하게 하나 존재한다는 것이다. 100 미만의 소수에 대해서 이런 조건을 만족하는 자연수 n 이 존재하는 경우는 단 4 개 뿐이다.
106 미만의 소수 중 위 조건을 만족하는 자연수 n 이 존재하는 소수는 몇 개나 될까?
n3+n2p=k3 이라고 해 보자. 좌변을 n2 으로 묶어주면
n2(n+p)=k3
이렇게 되면 두 가지 중 하나로 생각할 수 있다.
1. (n+p)=nm3, (m 은 자연수) → 그래야 k=nm 이 된다.
2. n=a3 이고 (n+p)=b3 (a,b 는 자연수) → 그래야 k=ab 가 된다.
첫 번째 경우는 1+pn=m3 이 되는데, 우변이 자연수 이므로 좌변도 자연수여야 한다. 따라서 pn 이 자연수가 되어야 하고, n 은 p 의 약수 중 하나여야 한다. 그런데 p 가 소수이므로 n=1 또는 n=p 가 되어야 하는데, n=1 인 경우는 두 번째 경우에서 a=1 인 경우로 보면 되니까 일단 패스.. n=p 이면 2=m3 이 되어 m 이 자연수라는 조건에 위배된다. 따라서 첫 번째 경우는 그냥 패스~~~
두 번째 경우는 결국 a3+p=b3 이 되는데, 정리하면
p=b3−a3=(b−a)(b2+ab+a2)
이 때, p 가 소수이므로 b−a=1,b2+ab+a2=p 이거나 b−a=p,b2+ab+a2=1 이어야 한다. 그렇지만 a,b 가 모두 자연수 이므로 b2+ab+a2 은 절대로 1 이 될 수 없다. 따라서 b−a=1,b2+ab+a2=p 가 된다.
결과적으로 b=a+1,p=3a2+3a+1 이 된다.
따라서 3a2+3a+1<106 을 만족하는 구간에서 자연수 a 값들을 변화시켜 가며, 3a2+3a+1 이 소수인 경우만 카운트 하면 문제의 답을 쉽게 구할 수 있다
'project euler with python' 카테고리의 다른 글
프로젝트 오일러 133번 (0) | 2016.03.15 |
---|---|
프로젝트 오일러 132번 (0) | 2016.03.15 |
프로젝트 오일러 130번 (0) | 2016.03.15 |
프로젝트 오일러 129번 (0) | 2016.03.15 |
프로젝트 오일러 128번 (0) | 2016.03.15 |