https://www.acmicpc.net/problem/1037
1037번: 약수
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되
www.acmicpc.net
#include <iostream>
#include <vector>
using namespace std;
void sortArr(vector<long long> &inputarr)
{
for (int i = 0; i < inputarr.size(); i++)
{
for (int j = 1; j < inputarr.size(); j++)
{
if (inputarr[j - 1] > inputarr[j]) //앞이 뒤보다 크다면
{
int temp = 0;//임시
temp = inputarr[j - 1];
inputarr[j - 1] = inputarr[j];
inputarr[j] = temp;
}
}
}
}
int main()
{
int n = 0; //약수의 개수
cin >> n;
vector<long long> arr(n, 0);
//배열 입력 받기
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
int ans; //정답
//약수가 하나만 있을 경우
if (n == 1)
{
ans = arr[0] * arr[0];
}
else //정렬 해야함
{
sortArr(arr);
ans = arr[0] * arr[n - 1];
}
cout << ans;
}
배열을 정렬 후 약수 중 (가장 작은 수 * 가장 큰 수) = N이다.
'백준 c++' 카테고리의 다른 글
백준 2609 c++ 최대공약수와 최소공배수 (0) | 2024.01.25 |
---|---|
백준 17425 c++ 약수의 합 (0) | 2024.01.25 |
백준 16926 c++ 배열 돌리기 1 (0) | 2024.01.23 |
백준 4375 c++ 1 (1) | 2024.01.22 |
백준 2904 c++ 수학은 너무 쉬워 (0) | 2023.03.09 |