이 과제를 순차적으로 설명하는 것이 가장 쉬운 방법이라고 생각합니다. 입력 번호 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
에 대한 가장 높은 소인수 1022
IS 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 의 가장 큰 주요 요소 를 얻는다고 합시다 . 그런 다음5
N-1과61
N + 1 을 얻 습니다 . 그런 다음19
N-2와67
N + 2를 얻 습니다 . 우리는 이후, 숫자 낮은 계속 시도해야19>5
하기 때문에, 또는 정지5<61
? 즉, 최대는 한쪽에 유지됩니까? (이 예제가 수학적으로 가능한지 확실하지 않습니다.)