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.
3.
4.
5.
6.
7.
8.
9.
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
/*************************** 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