N의 n개 진짜 약수가 주어질 때 N을 구하는 프로그램을 만들자
N의 약수중 1과 N이 아닌 약수를 진짜 약수라고 한다.
n이 홀수 일 떄와 짝수일 때가 있는데 홀수일 경우는 N이 제곱수이다.
N을 구하기 위해서는 최대 값과 최소 값만 알면 상관이 없지만, 이번 문제에서는 정렬을 이용해 최대/최소 값을 구하거나 중앙값을 구하는 방법을 사용했다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const short MAX = 50;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int count;
int res = 0;
vector<int> childList;
cin >> count;
childList.resize(count);
for (int i = 0; i < count; i++)
cin >> childList[i];
sort(childList.begin(), childList.end());
if (count % 2)
res = childList[count / 2] * childList[count / 2];
else
res = childList[0] * childList[count-1];
cout << res;
return 0;
}
2019-03-31 23:24:20에 Tistory에서 작성되었습니다.