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