백준 21919 소수 최소 공배수 Python

Derhon·2023년 12월 6일
0
post-custom-banner

백준 21919 소수 최소 공배수

6.52m + a

나의 답

import sys
import math
input = sys.stdin.readline

MAX = 10 ** 6
n = int(input().rstrip())
nums = list(map(int, input().rstrip().split()))

primes = [True] * (MAX + 1)
primes[0] = False
primes[1] = False
for i in range(2, int(math.sqrt(MAX) + 1)):
    if primes[i]:
        j = 2
        while (i * j) <= MAX:
            primes[i * j] = False
            j += 1

arr = set()
for num in nums:
    if primes[num]:
        arr.add(num)

res = 1
for i in arr:
    res *= i

if res == 1:
    print(-1)
else:
    print(res)

에라토스테네스의 체를 이용해서 풀었다.
set을 이용해서 중복제거해야한다는 것을 늦게 알아서... 타이머를 멈춰둔채로 조금 고쳤다.

profile
🧑‍🚀 이사했어요 ⮕ https://99uulog.tistory.com/
post-custom-banner

0개의 댓글