[C++][백준 2312] 수 복원하기

PublicMinsu·2024년 1월 6일

문제

접근 방법

N의 크기가 크기 않기에 2부터 모든 경우를 확인해 봐도 된다.

코드

#include <iostream>
using namespace std;
int tc, N;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> tc;
    while (tc--)
    {
        cin >> N;
        for (int i = 2, cnt;; ++i)
        {
            cnt = 0;
            if (N == 1) // N이 1인 경우
            {
                break;
            }
            while (N % i == 0) // 나머지가 0이면
            {
                ++cnt;
                N /= i;
            }
            if (cnt != 0)
            {
                cout << i << " " << cnt << "\n";
            }
        }
    }
    return 0;
}

풀이

소수를 활용해서 푸는 것을 염두에 둔 문제인 것 같지만 N이 작기에 모든 경우를 확인해도 문제가 없다.

profile
연락 : publicminsu@naver.com

0개의 댓글