diff --git a/Number Theory/prime_sieve.cpp b/Number Theory/prime_sieve.cpp new file mode 100644 index 0000000..3b08be4 --- /dev/null +++ b/Number Theory/prime_sieve.cpp @@ -0,0 +1,18 @@ +#define MAX_N 5000001 +bool is_prime[MAX_N]; + +bool is_sieve_eval = false; + +void sieve_erathosis(){ + if( is_sieve_eval ) return; + is_sieve_eval = true; + memset(is_prime,0,sizeof(is_prime)); + is_prime[0] = true , is_prime[1] = true; + for(int num = 2 ; num*num < MAX_N ; num++ ){ + if( !is_prime[num] ){ + for(int val = num*num ; val < MAX_N ; val += num ){ + is_prime[val] = true; + } + } + } +} \ No newline at end of file