반응형

#include<stdio.h>
void sort(int a[], int n) //오름차순 선택정렬
{
	int i, j, m, t;
	for (i = 0; i < n; i++)
	{
		m = i;
		for (j = i; j < n; j++)
		{
			if (a[m] > a[j])
			{
				m = j;
			}
		}

		t = a[i];
		a[i] = a[m];
		a[m] = t;

	}
}
int main(void)
{
	int N;
	int a[51];

	scanf("%d", &N);

	for (int i = 0; i < N; i++)
	{
		scanf("%d", &a[i]);
	}

	sort(a, N);

	printf("%d", a[0] * a[N - 1]);
}

 

양수 A의 가장 작은 약수가 min 이라고 할때 가장 큰 약수 max =  A/min이 된다. 따라서 min(최소)값과 max(최대)값을 서로 곱해주면 A를 구할 수 있다.

그런데 30의 경우 약수가 2, 3 ,5 일텐데 위의 말대로라면 2 * 5 = 10 이 정답이 아닌가? 할 수도 있다.

그러나 문제에서 "N의 진짜 약수가 전부 주어진다" 라고 했기 때문에

30이 답이라면 2,3,5,6,10,15 가 주어졌을 것이다.

반응형

+ Recent posts