Problem Solving/BOJ

[백준 / BOJ] C++ 1037 약수

nageune 2023. 2. 7. 18:33
728x90
반응형

1037번: 약수

 

문제

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

 

1037번: 약수

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

www.acmicpc.net

 

 

풀이

어떤 수의 1과 자기 자신을 제외한 모든 약수를 입력받고 어떤 수를 출력하는 문제다.

약수의 최솟값과 최댓값을 곱하면 그 수가 되는 점을 이용한다.

 

  1. N개의 수를 입력받아 배열에 넣는다.
  2. 배열을 오름차순으로 정렬한다.
  3. 배열의 첫 번째 원소와 마지막 원소를 곱해  출력한다.

 

 

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  cin >> n;
  vector<int> v(n);
  for (int i = 0; i < n; i++)
    cin >> v[i];
  sort(v.begin(), v.end());
  cout << v[0] * v[v.size() - 1] << '\n';
  return 0;
}

 

728x90
반응형