[Programmers] Q12923 숫자 블록
[Programmers] Q12923 숫자 블록
Question
Language: Python
해당 문제에서는 블록을 배치할 때, 특정 구간의 블록 배치를 구하는 문제이다.
1번 블록은 2,3,4,5,6.. 위치에 2번 블록은 4,6,8,10… 3번 블록은 6,9,12…
예를 들어 6번 위치에 있는 블록의 정보는 3번이다. 각각의 위치에 블록을 배치할 때, 기존에 작은 숫자가 이미 있으면 큰 숫자로 해당 index에 블록을 대체한다.
이럴때, 각각의 index에 놓여있는 블록의 규칙을 확인해보면 자기 자신을 제외한 가장 큰 약수값이 오게 된다. 또한 블록의 번호는 최대 10000000이므로 이를 조건문에 포함시켜서 가장 큰 약수를 구한다.
약수 구하기
def factorization(number):
factors=[]
if number==1:
return 0
last_number=1
for i in range(2,int(sqrt(number))+1):
if number % i==0 and number//i <= 10000000 :
last_number=number//i
break
return last_number
Solution
from math import sqrt
def factorization(number):
factors=[]
if number==1:
return 0
last_number=1
for i in range(2,int(sqrt(number))+1):
if number % i==0 and number//i <= 10000000 :
last_number=number//i
break
return last_number
def solution(begin, end):
answer=[]
for index in range(begin,end+1):
answer.append(factorization(index))
return answer
댓글남기기