문제
https://www.acmicpc.net/problem/1037
1037번: 약수
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되
www.acmicpc.net
소스코드
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int arr[51];
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
sort(arr, arr+n);
int ans = arr[0] * arr[n - 1];
cout << ans;
}
풀이
24의 약수
1,2,3,4, 6, 8,12,24
문제에서 1과 N은 뺀 나머지가 진짜 약수라고 명시하였다.
즉 약수는 2가 24의 약수이면 나눈 몫도 24의 약수여야 한다.
즉 2,12는 24의 약수이다.
따라서 최솟값과 최댓값을 곱한게 N을 구한것이다.
'Algorithm > math' 카테고리의 다른 글
| [백준] 알고리즘 C++ 2775번 - 부녀회장이 될테야문제 (0) | 2021.10.17 |
|---|---|
| [백준] 알고리즘 C++ 1085번 - 직사각형에서 탈출 (0) | 2021.09.30 |
| [백준] C++ 알고리즘 17425번 - 약수의 합 (0) | 2021.05.27 |
| [백준] C++ 알고리즘 17427번 - 약수의 합 2 문제 (0) | 2021.05.25 |
| [백준] C++ 알고리즘 4375번 - 1 문제 (1) | 2021.05.25 |
