#define _CRT_SECURE_NO_WARNINGS
#define INF 987654321

#include <iostream>
#include <math.h>

using namespace std;

// 시간복잡도 O(N^(1/2)
bool prime(int x) {

    int end = (int)sqrt(x);

    for (int i = 2; i <= end; i++) {
        if (x % i == 0) return false;
    }
    return true;
}

// 많은 양을 판단해야 할 때 -> 에라토스테네스의 체
// 먼저, 판별할 범위만큼 배열을 할당

int num[101]; // 2~100까지

void primeNumber() {
    
    for (int i = 2; i <= 100; i++) {
        num[i] = i;
    }

    for (int i = 2; i <= 100; i++) {
        if (num[i] == 0) continue;
        for (int j = i + i; j <= 100; j += i) {
            num[j] = 0;
        }
    }

    for (int i = 2; i <= 100; i++) {
        if (num[i] != 0) cout << num[i] << " ";
    }
}


int main() {

    cout << prime(8) << endl;
    
    primeNumber();


    return 0;
}
반응형

'자료구조 + 알고리즘' 카테고리의 다른 글

알고리즘 기초개념, 빅오표기법  (0) 2021.09.05
알고리즘 공부순서  (0) 2021.09.05
최대공약수(GCD), 최소공배수(LCM)  (0) 2021.09.05
(C++) 조합(Combination)  (0) 2021.09.04
(C++) 순열(Permutation)  (0) 2021.09.04

+ Recent posts