Baekjoon Online Judge
백준 1037번) 약수
judy1467
2023. 1. 13. 14:23
본문의 코드보다 더 효율적인 코드가 분명 존재합니다.
참고만 해주시면 감사하겠습니다.
코드 지적은 언제나 환영입니다.
풀이
예제에서 모든 약수를 줬기 때문에 풀이는 간단하다.
가장 큰 약수는 N/가장 작은 약수 이기 때문에
가장 큰 약수 * 가장 작은 약수 를 통해 쉽게 N을 구할 수 있다.
코드
#include "iostream"
#include "algorithm"
#include "cstdlib"
using namespace std;
bool compare(int a, int b){
return a>b;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int tc;
cin >> tc;
int *list = (int*)malloc(sizeof(int)*tc);
if(list == nullptr) return 1;
for(int i = 0 ; i < tc ; i++){
cin >> list[i];
}
sort(list, list+tc, compare);
cout << list[0] * list[tc-1] << "\n";
free(list);
return 0;
}