Skip to content
Related Articles
Open in App
Not now

Related Articles

Program to print prime numbers from 1 to N.

Improve Article
Save Article
Like Article
  • Difficulty Level : Easy
  • Last Updated : 27 Mar, 2023
Improve Article
Save Article
Like Article

Given a number N, the task is to print the prime numbers from 1 to N.
Examples: 

Input: N = 10
Output: 2, 3, 5, 7

Input: N = 5
Output: 2, 3, 5 

Algorithm:  

  • First, take the number N as input.
  • Then use a for loop to iterate the numbers from 1 to N
  • Then check for each number to be a prime number. If it is a prime number, print it.

Approach 1:  Now, according to formal definition, a number ‘n’ is prime if it is not divisible by any number other than 1 and n. In other words a number is prime if it is not divisible by any number from 2 to n-1.

Below is the implementation of the above approach:  

C++




// C++ program to display Prime numbers till N
#include <bits/stdc++.h>
using namespace std;
 
// function to check if a given number is prime
bool isPrime(int n)
{
    // since 0 and 1 is not prime return false.
    if (n == 1 || n == 0)
        return false;
 
    // Run a loop from 2 to n-1
    for (int i = 2; i < n; i++) {
        // if the number is divisible by i, then n is not a
        // prime number.
        if (n % i == 0)
            return false;
    }
    // otherwise, n is prime number.
    return true;
}
 
// Driver code
int main()
{
    int N = 100;
 
    // check for every number from 1 to N
    for (int i = 1; i <= N; i++) {
        // check if current number is prime
        if (isPrime(i))
            cout << i << " ";
    }
 
    return 0;
}


C




// C program to display Prime numbers till N
#include <stdbool.h>
#include <stdio.h>
 
// function to check if a given number is prime
bool isPrime(int n)
{
    // since 0 and 1 is not prime return false.
    if (n == 1 || n == 0)
        return false;
 
    // Run a loop from 2 to n-1
    for (int i = 2; i < n; i++) {
        // if the number is divisible by i, then n is not a
        // prime number.
        if (n % i == 0)
            return false;
    }
    // otherwise, n is prime number.
    return true;
}
 
// Driver code
int main()
{
    int N = 100;
 
    // check for every number from 1 to N
    for (int i = 1; i <= N; i++) {
        // check if current number is prime
        if (isPrime(i))
            printf("%d ", i);
    }
 
    return 0;
}
 
// This code is contributed by Sania Kumari Gupta


Java




// Java program to display Prime numbers till N
class GFG
{
      //function to check if a given number is prime
     static boolean isPrime(int n){
          //since 0 and 1 is not prime return false.
          if(n==1||n==0)return false;
   
          //Run a loop from 2 to n-1
          for(int i=2; i<n; i++){
            // if the number is divisible by i, then n is not a prime number.
                if(n%i==0)return false;
          }
          //otherwise, n is prime number.
          return true;
    }
     
 
    // Driver code
    public static void main (String[] args)
    {
        int N = 100;
        //check for every number from 1 to N
        for(int i=1; i<=N; i++){
            //check if current number is prime
            if(isPrime(i)) {
                System.out.print(i + " ");
            }
        }
 
    }
}


Python3




# Python3 program to display Prime numbers till N
 
#function to check if a given number is prime
def isPrime(n):
  #since 0 and 1 is not prime return false.
  if(n==1 or n==0):
    return False
   
  #Run a loop from 2 to n-1
  for i in range(2,n):
    #if the number is divisible by i, then n is not a prime number.
    if(n%i==0):
      return False
   
  #otherwise, n is prime number.
  return True
 
 
 
# Driver code
N = 100;
#check for every number from 1 to N
for i in range(1,N+1):
  #check if current number is prime
  if(isPrime(i)):
    print(i,end=" ")


C#




// C# program to display Prime numbers till N
using System;
     
class GFG
{
   
     //function to check if a given number is prime
     static bool isPrime(int n){
        //since 0 and 1 is not prime return false.
        if(n==1||n==0) return false;
 
        //Run a loop from 2 to n-1
        for(int i=2; i<n; i++) {
            // if the number is divisible by i, then n is not a prime number.
            if(n%i==0) return false;
        }
      //otherwise, n is prime number.
      return true;
    }
 
    // Driver code
    public static void Main (String[] args)
    {
        int N = 100;
        //check for every number from 1 to N
        for(int i=1; i<=N; i++) {
          //check if current number is prime
            if(isPrime(i)) {
              Console.Write(i + " ");
            }
        }
 
    }
}
 
// This code is contributed by Rajput-Ji


Javascript




<script>
 
 
// JavaScript program to display Prime numbers till N
 
// function to check if a given number is prime
function isPrime( n)
{
      // since 0 and 1 is not prime return false.
      if(n == 1 || n == 0) return false;
   
      // Run a loop from 2 to n-1
      for(var i = 2; i < n; i++)
      {
       
        // if the number is divisible by i, then n is not a prime number.
        if(n % i == 0) return false;
      }
      // otherwise, n is prime number.
      return true;
}
 
 
// Driver code
var N = 100;
 
// check for every number from 1 to N
  for(var i = 1; i <= N; i++)
  {
      // check if current number is prime
      if(isPrime(i)) {
        console.log( i );
      }
}
 
// This code is contributed by ukasp.
</script>


Output

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

Time Complexity: O(N^2), 
Auxiliary Space: O(1)

Approach 2:  For checking if a number is prime or not do we really need to iterate through all the number from 2 to n-1? We already know that a number ‘n’ cannot be divided by any number greater than ‘n/2’. So, according to this logic we only need to iterate through 2 to n/2 since number greater than n/2 cannot divide n.

C++




// C++ program to display Prime numbers till N
#include <bits/stdc++.h>
using namespace std;
 
//function to check if a given number is prime
bool isPrime(int n){
    //since 0 and 1 is not prime return false.
    if(n==1||n==0) return false;
 
    //Run a loop from 2 to n/2.
    for(int i=2; i<=n/2; i++) {
          // if the number is divisible by i, then n is not a prime number.
          if(n%i==0) return false;
    }
    //otherwise, n is prime number.
    return true;
}
 
 
// Driver code
int main()
{
    int N = 100;
 
    //check for every number from 1 to N
      for(int i=1; i<=N; i++){
        //check if current number is prime
        if(isPrime(i)) {
          cout << i << " ";
        }
    }
 
    return 0;
}


Java




// Java program to display
// Prime numbers till N
class GFG
{
     //function to check if a given number is prime
     static boolean isPrime(int n){
          //since 0 and 1 is not prime return false.
          if(n==1||n==0) return false;
 
        //Run a loop from 2 to n-1
        for(int i=2; i<=n/2; i++){
            // if the number is divisible by i, then n is not a prime number.
            if(n%i==0)return false;
        }
        //otherwise, n is prime number.
        return true;
    }
     
 
    // Driver code
    public static void main (String[] args)
    {
        int N = 100;
        //check for every number from 1 to N
        for(int i=1; i<=N; i++){
            //check if current number is prime
            if(isPrime(i)) {
              System.out.print(i + " ");
            }
        }
 
    }
}


Python3




# Python3 program to display Prime numbers till N
 
#function to check if a given number is prime
def isPrime(n):
  #since 0 and 1 is not prime return false.
  if(n==1 or n==0):
    return False
   
  #Run a loop from 2 to n/2
  for i in range(2,(n//2)+1):
    #if the number is divisible by i, then n is not a prime number.
    if(n%i==0):
      return False
   
  #otherwise, n is prime number.
  return True
 
 
 
# Driver code
N = 100;
#check for every number from 1 to N
for i in range(1,N+1):
  #check if current number is prime
  if(isPrime(i)):
    print(i,end=" ")


C#




// C# program to display
// Prime numbers till N
using System;
     
class GFG
{
   
 //function to check if a given number is prime
 static bool isPrime(int n){
      //since 0 and 1 is not prime return false.
     if(n==1||n==0)return false;
   
      //Run a loop from 2 to n/2.
      for(int i=2; i<=n/2; i++){
        // if the number is divisible by i, then n is not a prime number.
        if(n%i==0)return false;
      }
  //otherwise, n is prime number.
  return true;
}
 
// Driver code
public static void Main (String[] args)
{
    int N = 100;
    //check for every number from 1 to N
      for(int i=1; i<=N; i++){
      //check if current number is prime
      if(isPrime(i)) {
        Console.Write(i + " ");
      }
    }
     
}
}
 
// This code is contributed by Rajput-Ji


Javascript




<script>
// Javascript program to display Prime numbers till N
 
// function to check if a given number is prime
function isPrime(n)
{
 
    // since 0 and 1 is not prime return false.
    if(n == 1 || n == 0) return false;
 
    // Run a loop from 2 to n/2.
    for(let i = 2; i <= n / 2; i++)
    {
          // if the number is divisible by i, then n is not a prime number.
          if(n % i == 0) return false;
    }
     
    // otherwise, n is prime number.
    return true;
}
 
 
// Driver code
let N = 100;
 
// check for every number from 1 to N
for(let i = 1; i <= N; i++)
{
    // check if current number is prime
    if(isPrime(i))
    {
        document.write(i + " ");
    }
}
 
// This code is contributed by shubham348.
</script>


Output

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

Time Complexity: O(N2), 
Auxiliary Space: O(1), since no extra space has been taken.

Approach 3: If a number ‘n’ is not divided by any number less than or equals to the square root of n then, it will not be divided by any other number greater than the square root of n. So, we only need to check up to the square root of n.

C++




// C++ program to display Prime numbers till N
#include <bits/stdc++.h>
using namespace std;
 
//function to check if a given number is prime
bool isPrime(int n){
  //since 0 and 1 is not prime return false.
  if(n==1||n==0)return false;
   
  //Run a loop from 2 to square root of n.
  for(int i=2; i*i<=n; i++){
    // if the number is divisible by i, then n is not a prime number.
    if(n%i==0)return false;
  }
  //otherwise, n is prime number.
  return true;
}
 
 
// Driver code
int main()
{
    int N = 100;
 
    //check for every number from 1 to N
      for(int i=1; i<=N; i++){
      //check if current number is prime
      if(isPrime(i)) {
        cout << i << " ";
      }
    }
 
    return 0;
}


Java




// Java program to display
// Prime numbers till N
class GFG
{
  //function to check if a given number is prime
 static boolean isPrime(int n){
  //since 0 and 1 is not prime return false.
  if(n==1||n==0)return false;
   
  //Run a loop from 2 to square root of n
  for(int i=2; i*i<=n; i++){
    // if the number is divisible by i, then n is not a prime number.
    if(n%i==0)return false;
  }
  //otherwise, n is prime number.
  return true;
}
     
 
// Driver code
public static void main (String[] args)
{
    int N = 100;
        //check for every number from 1 to N
      for(int i=1; i<=N; i++){
      //check if current number is prime
      if(isPrime(i)) {
        System.out.print(i + " ");
      }
    }
     
}
}


Python3




# Python3 program to display Prime numbers till N
 
#function to check if a given number is prime
def isPrime(n):
  #since 0 and 1 is not prime return false.
  if(n==1 or n==0):
    return False
   
  #Run a loop from 2 to square root of n.
  for i in range(2,int(n**(1/2))+1):
    #if the number is divisible by i, then n is not a prime number.
    if(n%i==0):
      return False
   
  #otherwise, n is prime number.
  return True
 
 
 
# Driver code
N = 100;
#check for every number from 1 to N
for i in range(1,N+1):
  #check if current number is prime
  if(isPrime(i)):
    print(i,end=" ")


C#




// C# program to display
// Prime numbers till N
using System;
     
class GFG
{
   
 //function to check if a given number is prime
 static bool isPrime(int n){
      //since 0 and 1 is not prime return false.
     if(n==1||n==0)return false;
   
      //Run a loop from 2 to square root of n.
      for(int i=2; i*i<=n; i++){
        // if the number is divisible by i, then n is not a prime number.
        if(n%i==0)return false;
      }
  //otherwise, n is prime number.
  return true;
}
 
// Driver code
public static void Main (String[] args)
{
    int N = 100;
    //check for every number from 1 to N
      for(int i=1; i<=N; i++){
      //check if current number is prime
      if(isPrime(i)) {
        Console.Write(i + " ");
      }
    }
     
}
}
 
// This code is contributed by Rajput-Ji


Javascript




<script>
// JavaScript program to display Prime numbers till N
 
// function to check if a given number is prime
const isPrime = (n) => {
 
    // since 0 and 1 is not prime return false.
    if(n === 1||n === 0)return false;
 
    // Run a loop from 2 to square root of n.
    for(let i = 2; i <= Math.floor(Math.sqrt(n)); i++)
    {
     
      // if the number is divisible by i, then n is not a prime number.
      if(n % i == 0)return false;
    }
     
    // otherwise, n is prime number.
    return true;
  }
   
   
  // Driver code
   
  let N = 100;
   
  // check for every number from 1 to N
  for(let i=1; i<=N; i++)
  {
   
      // check if current number is prime
      if(isPrime(i)) {
          document.write(i);
      }
  }
   
  // This code is contributed by shinjanpatra
  </script>


Output

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

Time Complexity: O(N^(3/2)),
Auxiliary Space: O(1)

Approach 4: Sieve of Eratosthenes Algorithm

  1. Create a boolean array is_prime of size (N+1), initialized with true values for all elements.
  2. Loop through the array is_prime from 2 to the square root of N (inclusive), and for each prime number p found in the loop:
    • If is_prime[p] is true, loop through the multiples of p from p*p up to N, and mark them as false in the is_prime array.
  3. Loop through the array is_prime from 2 to N (inclusive), and for each index i where is_prime[i] is true, print i as a prime number.

C++




// CPP program to print prime numbers from 1 to N
// using Sieve of Eratosthenes
#include <bits/stdc++.h>
using namespace std;
 
void sieve_of_eratosthenes(int n)
{
    bool is_prime[n + 1];
    memset(is_prime, true, sizeof(is_prime));
    is_prime[0] = is_prime[1] = false;
    for (int p = 2; p * p <= n; p++) {
        if (is_prime[p]) {
            for (int i = p * p; i <= n; i += p) {
                is_prime[i] = false;
            }
        }
    }
    for (int i = 2; i <= n; i++) {
        if (is_prime[i]) {
            cout << i << " ";
        }
    }
}
 
int main()
{
    sieve_of_eratosthenes(100);
    return 0;
}
 
// This code is contributed by Susobhan Akhuli


Java




// Java program to print prime numbers from 1 to N
// using Sieve of Eratosthenes
 
import java.util.*;
 
public class GFG {
    public static void sieve_of_eratosthenes(int n)
    {
        boolean[] is_prime = new boolean[n + 1];
        Arrays.fill(is_prime, true);
        is_prime[0] = is_prime[1] = false;
        for (int p = 2; p * p <= n; p++) {
            if (is_prime[p]) {
                for (int i = p * p; i <= n; i += p) {
                    is_prime[i] = false;
                }
            }
        }
        for (int i = 2; i <= n; i++) {
            if (is_prime[i]) {
                System.out.print(i + " ");
            }
        }
    }
 
    public static void main(String[] args)
    {
        sieve_of_eratosthenes(100);
    }
}
 
// This code is contributed by Susobhan Akhuli


Python3




# Python program to print prime numbers from 1 to N
# using Sieve of Eratosthenes
 
def sieve_of_eratosthenes(n):
    is_prime = [True] * (n+1)
    is_prime[0] = is_prime[1] = False
    for p in range(2, int(n**0.5)+1):
        if is_prime[p]:
            for i in range(p*p, n+1, p):
                is_prime[i] = False
    for i in range(2, n+1):
        if is_prime[i]:
            print(i, end=' ')
 
 
sieve_of_eratosthenes(100)
 
# This code is contributed by Susobhan Akhuli


C#




// C# program to print prime numbers from 1 to N
// using Sieve of Eratosthenes
using System;
 
public class GFG { // Function to find prime numbers from 1
                   // to N
    static public void sieve_of_eratosthenes(int n)
    {
        // Create a boolean array "is_prime[0..n]" and
        // initialize all entries as true. A value in
        // is_prime[i] will finally be false if i is Not a
        // prime, else true
        bool[] is_prime = new bool[n + 1];
        Array.Fill(is_prime, true);
 
        // Mark 0 and 1 as false as they are not prime
        is_prime[0] = is_prime[1] = false;
 
        // Traverse through all numbers starting from 2, as
        // 1 is not prime
        for (int p = 2; p * p <= n; p++) {
            // If is_prime[p] is not changed, then it is a
            // prime
            if (is_prime[p]) {
                // Update all multiples of p as not prime
                for (int i = p * p; i <= n; i += p) {
                    is_prime[i] = false;
                }
            }
        }
 
        // Print all prime numbers
        for (int i = 2; i <= n; i++) {
            if (is_prime[i]) {
                Console.Write(i + " ");
            }
        }
    }
 
    static public void Main()
    {
        // Call sieve_of_eratosthenes() function with value
        // 100
        sieve_of_eratosthenes(100);
    }
}


Output

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

Complexity Analysis:

Time complexity:
The outer loop runs from 2 to the square root of N, so it runs in O(sqrt(N)) time.
The inner loop runs from p*p to N, and for each prime number p, it eliminates the multiples of p up to N. Therefore, the inner loop runs at most N/p times for each prime number p, so it has a time complexity of O(N/2 + N/3 + N/5 + …), which is approximately O(N log(log(N))). This is because the sum of the reciprocals of the prime numbers up to N is asymptotically bounded by log(log(N)).
The final loop runs from 2 to N, so it has a time complexity of O(N).
Therefore, the overall time complexity of the algorithm is O(N log(log(N))).

Space complexity: 
The algorithm uses an array of size N+1 to store the boolean values of whether each number is prime or not. Therefore, the space complexity is O(N).
In summary, the Sieve of Eratosthenes algorithm has a time complexity of O(N log(log(N))) and a space complexity of O(N) to print all the prime numbers from 1 to N.

To know more check  Sieve of Eratosthenes.


My Personal Notes arrow_drop_up
Like Article
Save Article
Related Articles

Start Your Coding Journey Now!