본문 바로가기

백준/C++

[C++] 백준 1037번 - 약수

728x90

 

문제 1037번

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

 

양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야한다고 나와있다. 그러면 1과 N이 빠진 진짜 약수들이 나와있을 때 맨 앞과 맨 뒤를 곱하면 해당하는 숫자를 구할 수 있다. 

 

변수에 입력 개수만큼 입력받은 후 오름차순으로 정렬해 앞과 뒤의 곱을 출력해주면 된다.

 

#include <iostream>
#include <algorithm>

using namespace std;

int main(){
    int N;
    cin >> N;
    int* num = new int[N];
    for(int i = 0; i < N; i++){
        cin >> num[i];
    }
    
    sort(num, num + N);
    
    cout << num[0] * num[N-1];
}

 

 

 

728x90