"소수 (prime number)"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(판별)
17번째 줄: 17번째 줄:
 
위 과정을 코드로 표현
 
위 과정을 코드로 표현
 
  bool isPrime(int n)
 
  bool isPrime(int n)
  {''<font color=green>// 정수 n이 소수이면 true를 반환한다.</font>''
+
  {''<font color=green> //정수 n이 소수이면 true를 반환한다.</font>''
     ''<font color=green>// 1은 소수가 아니다.</font>''
+
     ''<font color=green> //1은 소수가 아니다.</font>''
 
     <font color=#006699>if</font>(n == 1)  
 
     <font color=#006699>if</font>(n == 1)  
 
         <font color=#006699>return false</font>;
 
         <font color=#006699>return false</font>;
 
        
 
        
     ''<font color=green>// 짝수는 2이면 소수이다.</font>''
+
     ''<font color=green> //짝수는 2이면 소수이다.</font>''
 
     <font color=#006699>if</font>(n % 2 == 0)
 
     <font color=#006699>if</font>(n % 2 == 0)
 
         <font color=#006699>return</font> (n==2);
 
         <font color=#006699>return</font> (n==2);
 
            
 
            
 
     <font color=#006699>for</font>(int i=3; i<n; i+=2)
 
     <font color=#006699>for</font>(int i=3; i<n; i+=2)
     {''<font color=green>// 2 ~ n-1 범위의 홀수 약수가 있는지 검사한다.</font>''
+
     {''<font color=green> //2 ~ n-1 범위의 홀수 약수가 있는지 검사한다.</font>''
         ''<font color=green>// 약수가 있다면 소수가 아니다.</font>''
+
         ''<font color=green> //약수가 있다면 소수가 아니다.</font>''
 
         <font color=#006699>if</font>(n % i == 0)
 
         <font color=#006699>if</font>(n % i == 0)
 
             <font color=#006699>return false</font>;
 
             <font color=#006699>return false</font>;
 
     }
 
     }
     ''<font color=green>// 약수가 발견되지 않았으므로 소수이다.</font>''
+
     ''<font color=green> //약수가 발견되지 않았으므로 소수이다.</font>''
 
     <font color=#006699>return true</font>;
 
     <font color=#006699>return true</font>;
 
  }
 
  }
39번째 줄: 39번째 줄:
  
 
{{각주}}
 
{{각주}}
 
  
 
==참고자료==
 
==참고자료==

2019년 8월 1일 (목) 10:00 판

소수는 자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수를 의미한다. 예를 들어, 자연수 2, 3, 5의 약수는 1과 자기 자신뿐이기 때문에 자연수 2, 3, 5는 소수라고 할 수 있다.

개요

특징

  • 소수는 1보다 큰 자연수이다. 즉, 1은 소수가 아니다.
  • 소수의 약수는 1과 자기 자신뿐이다. 즉, 소수의 약수는 2개뿐이며, 역도 성립한다.
  • 2는 소수이지만, 2를 제외한 모든 짝수는 2를 약수로 가지므로 소수가 아니다.
  • 2, 3을 제외한 모든 소수는 자연수 n에 대해 6n-1 혹은 6n+1 꼴이다. 역은 성립하지 않는다.

판별

  • 1은 소수가 아니다.
  • 2는 소수이다.
  • 2를 제외한 모든 짝수는 소수가 아니다.
  • 1과 자기 자신만이 약수이기 때문에 홀수는 2와 n-1사이에서 약수를 가지지 않는다.

위 과정을 코드로 표현

bool isPrime(int n)
{ //정수 n이 소수이면 true를 반환한다.
     //1은 소수가 아니다.
    if(n == 1) 
        return false;
     
     //짝수는 2이면 소수이다.
    if(n % 2 == 0)
        return (n==2);
         
    for(int i=3; i<n; i+=2)
    { //2 ~ n-1 범위의 홀수 약수가 있는지 검사한다.
         //약수가 있다면 소수가 아니다.
        if(n % i == 0)
            return false;
    }
     //약수가 발견되지 않았으므로 소수이다.
    return true;
}


각주

참고자료

같이 보기