문제링크: N개의 최소공배수
✍🏻 Information
| content | |
|---|---|
| 언어 | python |
| 난이도 | ⭐️⭐️+0.5 |
| 풀이시간 | 70분 |
| 제출횟수 | ∞ |
| 인터넷검색유무 | yes |
🍒 My Code
def solution(arr):
answer = 1
jisoo = [0 for i in range(max(arr)+1)]
#각 원소를 지수로 표현
for i in arr:
tmp = [0 for i in range(max(arr)+1)]
x = 2
while x <= i:
if i % x == 0:
tmp[x]+=1
if tmp[x]>=jisoo[x]:
jisoo[x]=tmp[x]
i //= x
else:
x += 1
for i in range(2,len(jisoo)):
if jisoo[i]>=1:
answer*=(i**jisoo[i])
return answer
💡 What I learned
list comprehension 구문의 if else 문:[ 조건_만족시_출력값 if 조건 else 조건_불만족시_출력 값 for i in data]
x의 소인수분해 python코드:def factorization(x):
d = 2
while d <= x:
if x % d == 0:
print(d)
x = x / d
else:
d = d + 1