[BOJ] 1037
약수
1037번 https://www.acmicpc.net/problem/1037
분류
-
Silver 5
- 수학
- 정수론
해법
가장 작은 약수와 가장 큰 약수의 곱이 그 약수를 갖는 수라는 사실을 이용하면 됩니다.
정답 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
int n;
scanf(" %d", &n);
vector<int> divisors;
for (int i = 0; i < n; i++)
{
int divisor;
scanf(" %d", &divisor);
divisors.push_back(divisor);
}
sort(divisors.begin(), divisors.end()); // sort by ascending order
printf("%d", divisors[0] * divisors[n - 1]); // number N is smallest real divisor * biggest real divisor
return 0;
}
Leave a comment