hoan123432   2년 전

다른 사람들은 어떤 아이디어로 했는지 보면서, 발견한 문제점입니다.

현재 테스트 케이스는 n = a + b에서 a,b가 짝수일때도 통과시키는 문제점이 있습니다.

(아래코드에서 "a = n - i, b = i"일 때, i를 1씩 감소시키게 되면 a,b는 짝수일 확률이 존재하기 때문입니다.)

만약 이 코드를 고친다면 "짝수 - 홀수 = 홀수"라는 수의 규칙을 활용해 "기존 for문(line 21)"을 "for (int i = n - 1;i >= (int)sqrt(n);i -= 2)"으로 수정해야합니다.

즉, i = n -1인 '홀수값'으로 시작해서 2씩 빼주어서 a,b가 항상 홀수임을 보장해주어야합니다.

g072923   2년 전

짝수인 소수는 2밖에 없어서 상관없을 듯 합니다

댓글을 작성하려면 로그인해야 합니다.