공부/Code Cata

std::sqrt

동그래님 2024. 12. 22. 14:33

#include <cmath>

using namespace std;

int solution(int n) {
    
    int answer = 0;
    int k = n - 1; //n에서 나머지가 1이 되기 위한 수
    
    for(int i = 2; i <= sqrt(k); i++) //k의 약수 찾기.
    {
        if(k % i == 0)
        {
            return i;
        }
    }
    
    return k; //만약 k의 약수가 없다면 n-1인 k자체가 최소값을 의미.
}

sqrt 제곱근 함수

sqrt 함수는 C++ 표준 라이브러리에서 제공하는 수학 함수이고, 제곱근(SquareRoot)를 계산한다.

함수 원형: double sqrt(double x);

#include <cmath> 헤더를 포함해야한다.

 

함수 원형을 보면 부동소수점 연산을 사용함으로, 아주 큰 값이나 아주 작은 값에서는 약간의 오차가 발생할 수 있다.

정수 제곱근 판별, 약수 계산 등 다양한 수학적 문제에 활용될 수 있다.

n값의 최대 범위가 크기에 이 문제를 어떻게 풀지 고민하다가 n값을 x로 나눈 나머지가 1이 되기 위해, k = n - 1 값의 가장 작은 약수를 구하는 방법을 선택했다.