/*
 http://sosal.tistory.com/
 * made by so_Sal
 */

소수 판별 프로그램 소스입니다.

36을 예로 들면,
1 * 36
2 * 18
3 * 12
4 * 9
6 * 6 <-- sqrt(n) 이후로 모두 중복 되는것을 볼 수 있습니다.
9 * 4
12 * 3
18 * 2
36 * 1

#include<iostream>
#include<cmath>

using namespace std;

int main(){
    int n;
    cout<<"Input Number : "<<endl;
    cin>>n;
    int j = 0;
    for(int i=2; i <= sqrt(n) ; i++){
        if(n%i == 0){
            j = 1;
            break;
        }
    }
    if(j == 0)
        cout<<"prime."<<endl;
    else
        cout<<"not prime."<<endl;
}

저작자 표시 비영리 변경 금지
신고
Posted by sosal sosal

댓글을 달아 주세요

  1. 2011.03.24 07:32 신고

    sqrt(n)에서 오류가 납니다.(오버플로)

    • 2011.03.24 07:56 신고

      VS에서는 sqrt() 매개변수에 실수 타입 자료형을 넘겨야합니다. int n의 자료형을 double이나 float으로 바꾸면 문제없이 돌아갈것같네요.