언어/C++

[백준 1037] 약수

연나연 2023. 11. 20. 13:31

 

구현할 코드자체는 어렵지 않다만, 약수를보고 원래 수를 어떻게 구해야하나 꽤나 오래 생각했다...

수학이 필요한 문제,,

약수의 최소값과 최대값을 곱하면 원래의 수가 나오는 문제이다.

#include <iostream>
#include <algorithm> //정렬을 사용하기 위해

using namespace std;

int main() {

	int N_measure_count; // N의 진짜 약수의 개수
	int measure[51]; //약수들
	int N; //구하고자 하는 약수
	cin >> N_measure_count;
	for (int i = 0; i < N_measure_count; i++) {
		cin >> measure[i];
	}
	sort(measure, measure + N_measure_count);

	int min = measure[0]; //최솟값
	int max = measure[N_measure_count - 1]; //최대값

	N = min * max;
	cout << N;

	return 0;
}

완료 -!