개발관련/C언어

소수판별하기

guuuuuuu 2015. 11. 4. 19:30

bool prime(int n)

{

    for(int i=2;i<n;i++){

        if(n%i==0)return false; //소수 아님

    }

    return true; //소수임

}

//1과 자기 자신을 제외한 수로 나누어 떨어지지 않는다. 즉 if문을 만족하면 소수가 아님. 


조금 더 향상된 판별 방법


bool prime(int n)

{

    /* --> 소수 판별 오류남..

    int sqrn;

    sqrn = (int)sqrt(n);

     for(int i=2;i<sqrn;i++) // 루트n까지만 돌려도 된다.

    {

        if(n%i==0){

            return false;

        }

    }

    return true;

}