관리 메뉴

cococo-coding

1037번. 약수 (c++풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

1037번. 약수 (c++풀이)

_dani 2023. 12. 16. 23:54

 

최종코드

#include <iostream>
#include <algorithm>
using namespace std;

int main() {

    //1. n의 진짜 약수 개수를 입력받는다.
    //2. n의 진짜 약수들을 입력받는다. 
    //3. n을 찾는다.
    //4. n을 출력한다.

    //1
    int realnum = 0;
    cin >> realnum;

    //2
    int num[100] = { 0, };
    for (int i = 0; i < realnum; i++) {
        cin >> num[i];
    }

    //약수들 오름차순으로 정렬
    sort(num, num + realnum);

    //3
    int n = 0;
    n = num[0] * num[realnum - 1];

    //4
    cout << n;
    return 0;
}

 

풀이 과정

우선 어떤 자연수의 모든 약수의 개수가 나오고, 그 약수들이 순서에 상관없이 무작위로 입력되어 나온다. 

그렇다면 이 약수들을 크기순으로 정렬하여, 가장 작은 약수와 가장 큰 약수를 곱하면 그 자연수가 나오겠다는 생각이 들어 위와 같이 코드를 구성하였다.