TheAlgorithms-C-Plus-Plus/math/primes_up_to_10^8.cpp
Ajay Singh 4194b204f6 Prime (#585)
* Prime

Here we can check prime upto 10^8 in O(1). It is very useful in Competitive programming.

* Update and rename Math/Primeupto10^8.cpp to math/primes_up_to_10^8.cpp

* long long -> int64

* cstdint::int64_t

* int64_t

* std::cin
2019-12-07 08:33:23 +01:00

28 lines
619 B
C++

#include<iostream>
#include <cstring>
char prime[100000000];
void Sieve(int64_t n) {
memset(prime, '1', sizeof(prime)); // intitize '1' to every index
prime[0] = '0'; // 0 is not prime
prime[1] = '0'; // 1 is not prime
for (int p = 2; p * p <= n; p++) {
if (prime[p] == '1') {
for (int i = p * p; i <= n; i += p)
prime[i] = '0'; // set all multiples of p to false
}
}
}
int main() {
Sieve(100000000);
int64_t n;
std::cin >> n; // 10006187
if (prime[n] == '1')
std::cout << "YES\n";
else
std::cout << "NO\n";
}