소수 알고리즘

2019. 4. 2. 11:57알고리즘/암기

1. N이 소수인지 판별하는 알고리즘

  • N이 소수가 아니라면, a*b (a, b는 2 이상의 자연수)로 나타낼 수 있다
  • a가 b보다 작을 때, a는 최대 루트 N, b는 최소 루트 N으로 표시할 수 있다
  • 따라서 최대 루트 N까지 나머지 연산을 검사하면 소수인지 아닌지 판별할 수 있다.

https://github.com/surinoel/algorithm/blob/master/1978.cpp

 

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main(void) {
    int n = 111;
    for (int i = 2; i*<= n; i++) {
        if (n%i == 0) {
            printf("%d It's not prime\n", i);
            return 0;
        }
    }
    printf("It's prime\n");
    return 0;
}
cs

 

2. N까지 소수를 출력하는 알고리즘

  • 에라토스테네스의 체

https://github.com/surinoel/algorithm/blob/master/1929.cpp

'알고리즘 > 암기' 카테고리의 다른 글

달팽이 배열  (0) 2019.04.06
골드바흐의 추측  (0) 2019.04.02
배열 돌리기 (우)  (0) 2019.04.01
배열 돌리기 malloc  (0) 2019.04.01
배열 돌리기  (0) 2019.04.01