#자기자신을 제외한 가장 큰 약수
def maxYaksuExceptMe(number):
if number == 1:
return 0
for i in range(2, int(number**0.5)+1):
if number % i == 0 and number // i <= 10000000:
return number // i
return 1
def solution(begin, end):
answer = []
for num in range(begin, end+1):
answer.append(maxYaksuExceptMe(num))
return answer
모든 숫자는 자기 자신을 제외하고 자기 자신의 배수들에 적히게된다.
숫자는 계속 덮어 씌워질 것이기 때문에 최종적으로는 자기 자신을 제외하고 가장 큰 약수가 적히게 된다.
즉, 1을 제외하고는 약수를 효율적으로 찾아서 자기자신을 빼고 가장 큰 약수를 return하면 된다.
정확도 테스트는 전부 맞는데 효율성 테스트에서 실패가 떴다면,
10,000,000번째 블록까지만 사용했다는 조건을 간과한 것이다.
10,000,000번째 블록까지만 사용했으므로, 적힐 수 있는 가장 큰 수가 10,000,000까지이다.