-
소수인지 판단하는 법 c++ 코드알고리즘/C++ 2018. 11. 25. 13:15반응형
소수란?
소수는 1이 아닌 자연수 중에서 1과 자기 자신 이외의 약수를 갖지 않는 수를 뜻한다.
문제 예시
31이 소수인지를 구하시오
팁
루트를 이용하여 시간을 반으로 줄인다.
소수가 아닌 수는 곱셈으로 표시되는 숫자이며 어차피 반대편수의 반복이기 때문이다.
예를 들면
12의 경우
2 6 / 3 4 / 4 3 / 6 2
와 같은 식의 약수의 곱이 안오는데 3 4 이후로는 앞에 나온 숫자를 자리만 바꾸어 반복하는 것이기 때문이다.
풀이
C++ 소스 코드
#include <iostream>
#include <math.h>
// 소수인지 판단
bool primeNumber(int n){
if(n<2){
return false;
}
int num = sqrt(n);
for (int i = 2; i<= num; i++){
if (n % i ==0){
return false;
}
}
return true;
}
int main() {
int N = 31;
bool result = primeNumber(N);
if(result){
std::cout << "소수\n";
} else {
std::cout << "소수 아님\n";
}
return 0;
}
반응형'알고리즘 > C++' 카테고리의 다른 글
c++ 에서 srand 함수 (0) 2019.01.30 #define MAX 100 의미 (0) 2019.01.29 #include <stdio.h> 의미 (0) 2019.01.28 c++ 에서 extern 사용법(다른 소스 전역변수 사용하는법) (4) 2019.01.28 유클리드 알고리즘(GCD) c++ 코드 (0) 2018.11.20