Coding Test/baekjoon

[백준 1037] 약수 - python (solved.ac - 실버 5)

조용장 2021. 9. 11. 22:52

풀이

문제를 보았을때 알수있는 힌트

문제를 통해 약수인 N을 찾으면 되는 문제이다.

  1. N은 A의 배수
  2. A가 1과 N이 아니어야한다.

이렇게 2가지를 조심하면서 문제를 풀어야할듯하다

 

문제를 풀기 위한 조건 정의

이번 문제는 약수의 개념을 아는 것이 중요한 문제이다.

약수는 1과 자기자신을 제외한 수로 나누어 떨어지는 수를 약수라고 한다.

 

예를 들자면 8의 약수는 1, 2, 4, 8이 된다.

15의 약수는 1, 3, 5, 15가 된다.

이것을 통해 우리는 문제의 힌트를 다 알게 되었다.

우리는 N을 구하면 되는 것이고 1과 자기사진을 제외한 값이 2번째 줄에 입력이 된다는 것이다.

이를 이용하여 처음숫자와 마지막 숫자를 곱하면 N의 값을 알게 된다.

 

이를 코드로 작성하면 

import sys

N=int(input())
a_list=list(map(int, sys.stdin.readline().split()))
a_list.sort()

print(a_list[0]*a_list[-1])

이렇게 작성할수있다. 

a_list는 입력 2번째 줄에 있는 리스트를 의미한다.

a_list의 값을 sort로 정렬을 하고 리스트의 처음과 끝을 곱하여 출력하면 약수의 값을 구할수있게 된다.

 

결과

전체 코드 공유

https://github.com/dydwkd486/coding_test/blob/main/baekjoon/baekjoon1037.py