Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <iostream>
- using namespace std;
- bool isPrime(const int num) {
- if (num < 2) {
- return false;
- } else if (num < 4) {
- return true;
- } else if (num % 2 == 0) {
- return false;
- }
- int sup = sqrt(num) + 1;
- for (int i = 3; i < sup; i += 2) {
- if (num % i == 0) {
- return false;
- }
- }
- return true;
- }
- bool Eratosthenes(const int num) {
- if (num < 2) {
- return false;
- } else if (num < 4) {
- return true;
- } else if (num % 2 == 0) {
- return false;
- }
- bool *composite = new bool[num + 1]{false};
- for (int delta = 3; delta < num; delta += 2) {
- if (!composite[delta]) {
- const int step = 2 * delta;
- for (int n = 3 * delta; n <= num; n += step) {
- composite[n] = true;
- }
- if (composite[num]) {
- break;
- }
- }
- }
- bool result = !composite[num];
- delete[] composite;
- return result;
- }
- int main() {
- for (int i = 1; i <= 100; i++) {
- cout << i << std::boolalpha << "\t" << isPrime(i) << "\t"
- << Eratosthenes(i) << endl;
- }
- }
Add Comment
Please, Sign In to add comment