[C++] 백준 1037. 약수

멋진감자·2024년 12월 11일
1

알고리즘

목록 보기
41/64
post-thumbnail

문제

풀이

모든 약수는 짝을 이룬다는 사실을 이용하면 된다.
예를 들어 28의 약수에는 1, 2, ..., 14, 28이 있다.
128 = 28, 그 다음 214 = 28과 같은 식이다.
이 문제에서 약수 중 1과 N이 제외됐으므로
1보다 큰 최솟값과 N보다 작은 최댓값의 곱이 N과 같다.

코드

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n, d;
	cin >> n;

	int mini = 1e9;
	int maxi = -1;
	for (int i = 0; i < n; i++) {
		cin >> d;
		mini = min(mini, d);
		maxi = max(maxi, d);
	}
	unsigned int ans = mini * maxi;
	cout << ans;

	return 0;
}

채점

profile
난멋져

0개의 댓글