N

(SWEA c++)5688. 세제곱근을 찾아라 본문

SW Expert Academy

(SWEA c++)5688. 세제곱근을 찾아라

naeunchan 2020. 11. 16. 11:12
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXVyCaKugQDFAUo&categoryId=AWXVyCaKugQDFAUo&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

N의 범위가 크기 때문에 여유롭게 unsigned long long으로 풀었다.

for문을 통해 1 ~ ((i * i * i) <= num) 일 때까지 반복한다.

세제곱이 num과 같으면 break; 하여 답을 찾으면 된다.

#include <iostream>
#include <cmath>

using namespace std;

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        unsigned long long num, ans = 0;
        
        cin >> num;
        
        for(unsigned long long i = 1; i * i * i <= num; i++)
        {
            if(i * i * i == num)
            {
                ans = i;
                break;
            }
        }
        
        cout << "#" << tc << " ";
        
        if(ans == 0)
            cout << -1 << endl;
        else
            cout << ans << endl;
    }
    return 0;
}
728x90
반응형