728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12923
분석
블록에 적힌 번호가 n 일 때, 가장 첫 블록은 n * 2번째 위치에 설치합니다.
그 다음은 n * 3, 그 다음은 n * 4, ...위치에 설치합니다.
기존에 설치된 블록은 빼고 새로운 블록을 집어넣습니다.
➔ n보다 작은 가장 큰 n의 약수 구하기
풀이
from math import sqrt
def solution(begin, end):
answer = []
for i in range(begin,end+1):
if i==1:
answer.append(0)
else:
temp=[1]
for j in range(2, int(sqrt(i))+1):
if j<=10**7 and i%j==0:
temp.append(j)
if i!=i//j<=10**7:
temp.append(i//j)
answer.append(max(temp))
return answer
728x90