728x90
반응형
##소수(prime)
1,알고리즘
1) n이 소수인지 판별
(1) 완전탐색
: 2~n-1 까지 약수 있는지 검사
-시간복잡도:O(n)
(2) 루트n 까지
: 1~sqrt(n) 까지 나누어 떨어지는지 검사
-시간복잡도:O(sqrt(n))
1
2
3
4
5
|
for (int i = 2; i * i <= num; i++) { // 루트n 은 i*i<n 이렇게 구현
if (num % i == 0) { return false; }
}
|
cs |
(3) 에라토스테네스의 체
: 2부터 시작해 각 수의 모든 배수들은 소수가 아니므로 제거
-시간복잡도 가장 빠름
1
2
3
4
5
6
7
8
9
10
11
|
// 에라토스테네스 체
void eratos() {
check[0] = check[1] = 1;
for (int i = 2; i*i <= 1000000; i++) { // 루트100만 까지 , 넘어가면 이미 다 소수판별 되있음
if (check[i] == 0) {
for (int j = i + i; j <= 1000000; j += i) { // i의 배수들 소수아님 처리
check[j] = 1;
}
}
}
}
|
cs |
2) n까지 소수 구하기
반응형
'Algorithm_몰랐던 함수 및 개념' 카테고리의 다른 글
[알고리즘] 백트래킹(Backtracking) (0) | 2021.08.03 |
---|---|
[알고리즘] 부르트포스,완전탐색 (0) | 2021.08.01 |
[알고리즘] 최대공약수/최소공배수 (0) | 2021.07.31 |
[알고리즘] 그래프 02. 그래프 표현 (0) | 2021.07.27 |
[알고리즘] 그래프 01.개념 (0) | 2021.07.27 |