본문 바로가기

코드연습/BOJ

BOJ 1037 : 약수

728x90

문제

양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.

풀이

진짜 간단한 문제다. 하지만 나는 틀렸다. '유클리드 호제법'은 두 수들의 나누기를 통해서 그 나머지로 기존 수로 나누어서 나머지가 0이 될 때의 나머지 수가 최대 공약수인 방법이다. 여기서 모든 약수들 중에서 최소 약수와 최대 약수의 곱으로 기존 수를 구할 수 있다.

https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95

 

유클리드 호제법 - 위키백과, 우리 모두의 백과사전

유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를

ko.wikipedia.org

 

import sys

if __name__ == '__main__':
    n = int(input())
    
    data = list(map(int, sys.stdin.readline().split()))
    
    print(max(data)*min(data))

'코드연습 > BOJ' 카테고리의 다른 글

BOJ 2981 : 검문  (0) 2022.04.28
BOJ 2609 : 최대공약수와 최소공배수  (0) 2022.04.27
BOJ 10814 : 나이순 정렬  (0) 2022.04.26
BOJ 1181 : 단어 정렬  (0) 2022.04.26
BOJ 1436 : 영화감독 숌  (0) 2022.04.22