문제 출처
1. 문제설명
- 두 끈을 이어붙이고, 그 끈을 다시 길이가 소수인 두 개의 끈으로 나눌 수 있는가?
2. 알고리즘 설계
- 이 문제는 골드바흐의 추측과 밀접한 관계가 있다.
- 이 추측에 의하면 4보다 큰 홀수는 두 홀수의 짝수 조합으로 나눌 수 있다.
- 즉, 두 수의 합이 4보다 작으면 절대 불가능하다.
- 4보다 큰 짝수 중에 소수는 없을까?
3. 로직
- 4보다 큰 짝수 소수인지 체크하는 방법
- 소수 중에 짝수는 2 뿐이다.
- 다시 말해서,
- 어떤 수에서 2를 뺀 다음,
- 이 수가 소수로 나눠지지 않는다면?
- 해당 숫자는 소수이다.
4. 전체 코드
5. 주의!
- 골드바흐의 추측은,
- 아주 큰 범위의 수까지는 해당 이론이 적용된다고 한다.
- $2*10^2$ 까지는 적용이 되지 않는다.
- 따라서,
sqrt
($2*10^2$)까지의 소수만 계산한다.