문제풀이

BaekJoon(1037)::약수

문제

 

1037번: 약수

첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되�

www.acmicpc.net

문제파악

: 진짜약수의 갯수, 모든 약수의 값이 주어짐

 

「약수란?」

: 두 정수 a, b에  대하여 b=ac를 만족하는 정수 가 존재한다면 a를 b의 약수라 한다. 

: 즉, 어떠한 수로 정수가 나누어떨어지는 것을 대하여 이르는 말.

 

: 문제를 보면 자기와 1은 제외한다고 하였으니 자명약수를 제외한 고유약수중 자기 자신을 제외한 진약수가 주어짐을 알 수있다.

 

문제풀이

:  약수의 특징을 알면 가장 큰약수와 작은 약수의 곱이 해당 정수 N이 됨을 알수 있다.

#include<iostream>
#define MAX_INT  1000000;
#define MIN_INT  1;

using namespace std;

int main() {
    int n;
    cin >> n;
    int max_divisor = MIN_INT;
    int min_divisor = MAX_INT;
    
    while (n--) {
        int divisor;
        cin >> divisor;
        max_divisor = divisor > max_divisor ? divisor : max_divisor;
        min_divisor = divisor < min_divisor ? divisor : min_divisor;
    }

    cout << max_divisor * min_divisor;
}

 

'문제풀이' 카테고리의 다른 글

BaekJoon(2869)::달팽이는 올라가고 싶다  (0) 2021.07.19
BaekJoon(2292)::벌집  (0) 2021.07.19
BaekJoon(2839)::설탕 배달  (0) 2021.07.19
BaekJoon(2164)::카드2  (0) 2021.07.19
BaekJoon(18258)::큐2  (0) 2021.07.19