이 과제를 순차적으로 설명하는 것이 가장 쉬운 방법이라고 생각합니다. 입력 번호 N으로 시작하고 다음을 수행하십시오 .
- 최고의 주요 요소를 찾으십시오
- N 위와 아래의 숫자를 확인 하고 최고 소인수가 더 높은지 확인하십시오 (즉, 최고 소인수 N-1 및 / 또는 N + 1 이 N 의 계수보다 높은지 확인하십시오) .
- 가장 높은 요소가 증가하는 방향 ( (N-2, N-3 ...) 및 / 또는 (N + 2, N + 3 ...) 등에서 N 에 인접한 더 높은 숫자 및 / 또는 더 낮은 숫자를 계속 확인하십시오 . 의 위에)
- 우리가 이미 찾은 것보다 높은 방향으로 어떤 방향으로도 주요 요인이 없으면 우리는 우리가 만난 가장 높은 주요 요인을 멈추고 출력합니다.
예를 보자.
245주요 요인이 5, 7, 7있습니다. 이웃은 다음과 같습니다.
244 -> 2, 2, 61
245 -> 5, 7, 7
246 -> 2, 3, 41
가장 큰 주요 요소는 양방향으로 증가하고 있으므로 다음 이웃을 살펴 봐야합니다.
243 -> 3, 3, 3, 3, 3
244 -> 2, 2, 2, 61
245 -> 5, 7, 7
246 -> 2, 3, 41
247 -> 13, 19
가장 높은 소수는 이제 양방향으로 감소하고 있으므로 가장 높은 소수 61는입니다. 따라서 반환되어야합니다.
또 다른 예:
를 보자 1024. 주요 요인은 2, 2, 2, 2, 2, 2, 2, 2, 2, 2입니다. 가장 가까운 이웃의 주요 요소는 다음과 같습니다.
1023 -> 3, 11, 31
1024 -> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
1025 -> 5, 5, 41
가장 높은 주요 요인은 두 방향으로 증가 2하는 31나 41. 이웃을 봅시다 :
1022 -> 2, 7, 73
1023 -> 3, 11, 31
1024 -> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
1025 -> 5, 5, 41
1026 -> 2, 3, 3, 19
에 대한 가장 높은 소인수 1022IS 73, 그리고 대한이 가장 주요한 요인 1026이다 19. 관심이없는 19것보다 낮기 때문에 41. N보다 작은 숫자에 대해서는 여전히 증가하고 있으므로 다음 방향으로 확인합니다 .
1021 -> 1021
1022 -> 2, 7, 73
1023 -> 3, 11, 31
1024 -> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
1025 -> 5, 5, 41
1026 -> 2, 3, 3, 19
1021 는 소수이며 우리가 만난 가장 높은 소수이므로 반환해야합니다.
규칙 :
N보다 크1거나 작은 양수 만 얻을 수2^31-2있습니다.- 입력 및 출력 형식은 선택 사항이지만 숫자는 10 진수 여야합니다.
- 가장 높은 값이 해당 방향으로 증가하는 한 더 높은 소수를 계속 검색해야합니다. 방향은 서로 독립적입니다.
테스트 사례 :
체재: N, highest_factor
2, 3
3, 3
6, 7
8, 11
24, 23
1000, 997
736709, 5417
8469038, 9431
N=2실제로 1소인수가 없기 때문에 우위에있는 것처럼 보이므로 계속해야하는지 여부를 결정하기 위해 비교할 수있는 최대 소인수가 없습니다.
2는 N 의 가장 큰 주요 요소 를 얻는다고 합시다 . 그런 다음5N-1과61N + 1 을 얻 습니다 . 그런 다음19N-2와67N + 2를 얻 습니다 . 우리는 이후, 숫자 낮은 계속 시도해야19>5하기 때문에, 또는 정지5<61? 즉, 최대는 한쪽에 유지됩니까? (이 예제가 수학적으로 가능한지 확실하지 않습니다.)