BOJ 1037번 (약수)

JH·2023년 1월 3일
0

BOJ 알고리즘 (C++)

목록 보기
1/97

- 문제
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.

- 입력
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.

- 출력
첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.

#include<iostream>
#include<algorithm>
using namespace std;
int arr[51];
void fast_io()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
}

int main()
{
	int count; cin >> count; int i = 0;
	while (count--)
	{
		cin >> arr[i];
		i++;
	}
	sort(arr, arr + i);
	cout << arr[0] * arr[i - 1];
}

    약수를 오름차순 or 내림차순으로 졍렬 후 첫번째 수와 가장 마지막 수를 곱해주면 N값이 나온다.
    라이브러리에서 제공하는 sort() 함수의 시간복잡도는 nlogn이다.

시간 복잡도 : O(nlogn)

공간 복잡도 : O(n)

profile
블로그 -> 노션

0개의 댓글