문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12923#
def sosu(n):
if n == 1:
return 0
ans=[]
for i in range(2, int(n ** 0.5)+1):
if n % i == 0:
if n//i <= 10000000:
ans.append(n//i)
break # 몫이 10**7 이하 조건을 만족하면 가장먼저 나온수가 제일 크므로 더이상 순회할필요가 없다.
else:
ans.append(i)
return max(ans) if ans else 1
def solution(begin, end):
ans = []
for i in range(begin,end+1):
ans.append(sosu(i))
return ans