Processing math: 0%

C++ Program to Display All the Prime Numbers up to N

Prime number

C++ program to display all primes up to n has been shown here. Here n is a positive integer. For example if n = 30, we get all the prime numbers less or equal to 30 i.e. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29. The algorithm, pseudocode and time complexity of the program have been shown below.






1. Algorithm to display all primes up to N


1. Take input of a positive number n as limit.

2. Repeat step 3 to 5, for each i \in [2, n]

3. Check for each j \in [2, \sqrt{i}], if i is divisible by any value of j

4. If step 3 is true for atleast one j, then i is not a prime.

5. If step 3 is false for each i, then display i as a prime




2. Pseudocode to display all primes up to N


Input : A postive number n as limit

Output : All the prime number below n

1. Procedure checkPrime(n):

2. Repeat for i \in [2, n]:

3. flag \leftarrow 0

4. Repeat for j \in [2, \sqrt{i}]:

5. If i \mod j = 0:

6. flag \leftarrow 1

7. break

8. If flag = 0:

9. Print i

10. End Procedure





3. Time complexity to display all primes up to N


Time Complexity: O(n\sqrt{n})

Where n is the total count of positive numbers and O(\sqrt{n}) is the time to check primality of each number.





4. C++ Program & output to display all primes up to N

Code has been copied
/***************************
      alphabetacoder.com
C++ program to find all the 
prime numbers up to n 
****************************/

#include <iostream>
#include <cmath>

using namespace std;

int main() {
    // declare variables
    int n, i, j, flag = 0;

    // take input of the limit
    cout << "Enter the limit = ";
    cin >> n;

    cout << "List of primes upto " << n << ": ";
    // consider each number from i = 2
    // to n for primality test
    for (i = 2; i <= n; i++) {
        // initialize variable
        flag = 0;
        //check if current i is prime or not
        //If i has divisor between 2 and
        // square root of i, then 
        // i is not prime else i is prime
        for (j = 2; j <= sqrt(i); j++) {
            if (i % j == 0) {
                flag = 1; // mark as not prime
                break; // exit from loop
            }
        }
        // flag = 0 means i is prime.
        // Display i
        if (flag == 0)
            cout << i << " ";
    }

    return 0;
}

Output


Enter the limit = 60

List of primes upto 60: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59