상상쓰

[백준] 소수 최소 공배수 본문

Coding Test

[백준] 소수 최소 공배수

상상쓰 2021. 7. 22. 14:48

https://www.acmicpc.net/problem/21919

 

21919번: 소수 최소 공배수

수열 중에 소수는 2, 3, 5가 있다.

www.acmicpc.net

 

중복되지 않은 소수의 곱이 최소 공배수이다.

중복되는 소수가 나올 수 있는 경우를 주의하자. '틀렸습니다' 가 아닌 '출력 초과' 로 나와서 뭐가 틀렸는지 한참 찾았다.

 

import sys, math

def prime(n):
    answer = True
    
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            answer = False
            break
    
    return answer

N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().strip().split()))
answer = 1
dic = {}

for i in range(N):
    if prime(A[i]) and A[i] not in dic:
        dic[A[i]] = 1
        answer *= A[i]

answer = -1 if answer == 1 else int(answer)

print(answer)

 

'Coding Test' 카테고리의 다른 글

[백준] 스택  (0) 2021.07.23
[프로그래머스] 튜플  (0) 2021.07.23
[프로그래머스] 가사 검색  (0) 2021.07.22
[프로그래머스] 오픈채팅방  (0) 2021.07.21
[백준] 최고의 피자  (0) 2021.07.20
Comments