Alternate Primes till N
We have to print alternate prime numbers till N.
Examples:
Input : N = 10 Output : 2 5 Input : N = 15 Output : 2 5 11
Naive Approach:We can just simply iterate over N and check whether the number is prime or not and print the alternate number just by keeping a simple altering flag variable.
C++
/* C++ program to print all primes smaller than or equal to n using Naive approach.*/ #include<bits/stdc++.h> using namespace std; /* Function for checking number is prime or not */ int prime( int num) { int i, flag = 0; for (i = 2; i<= num / 2; i++) { if (num % i == 0) { flag = 1; break ; } } // if flag = 0 then number // is prime and return 1 // otherwise return 0 if (flag == 0) return 1; else return 0; } // Function for printing // alternate prime number void print_alternate_prime( int n) { // counter is initialize with 0 int counter = 0; // looping through 2 to n-1 for ( int num = 2; num < n; num++) { // function calling along // with if condition if (prime(num) == 1) { // if counter is multiple of 2 // then only print prime number if (counter % 2 == 0) cout << num << " " ; counter ++; } } } // Driver code int main() { int n = 15; cout << "Following are the alternate prime" << " number smaller than or equal to " << n << endl; // Function calling print_alternate_prime(n); } // This code is contributed // by ChitraNayal |
Java
// Java program to print all // primes smaller than or // equal to n using Naive approach. class GFG { /* Function for checking number is prime or not */ static int prime( int num) { int i, flag = 0 ; for (i = 2 ; i<= num / 2 ; i++) { if (num % i == 0 ) { flag = 1 ; break ; } } // if flag = 0 then number is prime // and return 1 otherwise return 0 if (flag == 0 ) return 1 ; else return 0 ; } // Function for printing // alternate prime number static void print_alternate_prime( int n) { // counter is initialize with 0 int counter = 0 ; // looping through 2 to n-1 for ( int num = 2 ; num < n; num++) { // function calling along // with if condition if (prime(num) == 1 ) { // if counter is multiple of 2 // then only print prime number if (counter % 2 == 0 ) System.out.print(num + " " ); counter ++; } } } // Driver code public static void main(String[] args) { int n = 15 ; System.out.println( "Following are the alternate " + "prime number smaller than " + "or equal to " + n); // Function calling print_alternate_prime(n); } } // This code is contributed // by ChitraNayal |
Python3
# Python3 program to print all # primes smaller than or # equal to n using Naive approach. # Function for checking number # is prime or not def prime(num) : flag = 0 for i in range ( 2 ,num / / 2 + 1 ) : if num % i = = 0 : flag = 1 break # if flag = 0 then number is prime # and return 1 otherwise return 0 if flag = = 0 : return 1 else : return 0 # Function for printing alternate prime number def print_alternate_prime(n): # counter is initialize with 0 counter = 0 # looping through 2 to n-1 for num in range ( 2 ,n) : # function calling along with if condition if prime(num) = = 1 : # if counter is multiple of 2 then # only print prime number if counter % 2 = = 0 : print (num,end = " " ) counter + = 1 # Driver code if __name__ = = "__main__" : n = 15 print ( "Following are the alternate prime" + "number smaller than or equal to" ,n) # Function calling print_alternate_prime(n) |
C#
// C# program to print all // primes smaller than or // equal to n using Naive approach. using System; class GFG { /* Function for checking number is prime or not */ static int prime( int num) { int i, flag = 0; for (i = 2; i <= num / 2; i++) { if (num % i == 0) { flag = 1; break ; } } // if flag = 0 then number is prime // and return 1 otherwise return 0 if (flag == 0) return 1; else return 0; } // Function for printing // alternate prime number static void print_alternate_prime( int n) { // counter is initialize with 0 int counter = 0; // looping through 2 to n-1 for ( int num = 2; num < n; num++) { // function calling along // with if condition if (prime(num) == 1) { // if counter is multiple of 2 // then only print prime number if (counter % 2 == 0) Console.Write(num + " " ); counter ++; } } } // Driver code public static void Main() { int n = 15; Console.Write( "Following are the alternate " + "prime number smaller than " + "or equal to " + n + "\n" ); // Function calling print_alternate_prime(n); } } // This code is contributed // by ChitraNayal |
PHP
<?php // PHP program to print all // primes smaller than or // equal to n using Naive approach. // Function for checking number // is prime or not function prime( $num ) { $flag = 0; for ( $i = 2; $i <= $num / 2; $i ++) { if ( $num % $i == 0) { $flag = 1; break ; } } // if flag = 0 then number is prime // and return 1 otherwise return 0 if ( $flag == 0) return 1; else return 0; } // Function for printing // alternate prime number function print_alternate_prime( $n ) { // counter is initialize with 0 $counter = 0; // looping through 2 to n-1 for ( $num = 2; $num < $n ; $num ++) { // function calling along // with if condition if (prime( $num ) == 1) { // if counter is multiple of 2 // then only print prime number if ( $counter % 2 == 0 ) echo $num . " " ; $counter += 1; } } } // Driver code $n = 15; echo "Following are the alternate prime " . "number smaller than or equal to " . $n . "\n" ; // Function calling print_alternate_prime( $n ); // This code is contributed // by ChitraNayal ?> |
Javascript
<script> // javascript program to print all // primes smaller than or // equal to n using Naive approach. /* * Function for checking number is prime or not */ function prime(num) { var i, flag = 0; for (i = 2; i <= num / 2; i++) { if (num % i == 0) { flag = 1; break ; } } // if flag = 0 then number is prime // and return 1 otherwise return 0 if (flag == 0) return 1; else return 0; } // Function for printing // alternate prime number function print_alternate_prime(n) { // counter is initialize with 0 var counter = 0; // looping through 2 to n-1 for (num = 2; num < n; num++) { // function calling along // with if condition if (prime(num) == 1) { // if counter is multiple of 2 // then only print prime number if (counter % 2 == 0) document.write(num + " " ); counter++; } } } // Driver code var n = 15; document.write( "Following are the alternate " + "prime number smaller than " + "or equal to " + n+ "<br/>" ); // Function calling print_alternate_prime(n); // This code is contributed by Rajput-Ji </script> |
Output:
Following are the alternate prime numbers smaller than or equal to 15 2 5 11
Time Complexity: O(N * )
Efficient approach: Using Sieve of Eratosthenes we can just print all the alternate true values in the sieve.
C++
// C++ program to print all primes smaller than or // equal to n using Sieve of Eratosthenes #include <bits/stdc++.h> using namespace std; void SieveOfEratosthenes( int n) { // Create a boolean array "prime[0..n]" and initialize // all entries it as true. A value in prime[i] will // finally be false if i is Not a prime, else true. bool prime[n + 1]; memset (prime, true , sizeof (prime)); for ( int p = 2; p * p <= n; p++) { // If prime[p] is not changed, then // it is a prime if (prime[p] == true ) { // Update all multiples of p for ( int i = p * 2; i <= n; i += p) prime[i] = false ; } } // Print all prime numbers bool flag = true ; for ( int p = 2; p <= n; p++) { if (prime[p]) { if (flag) { cout << p << " " ; flag = false ; } else { // for next prime to get printed flag = true ; } } } } // Driver Program to test above function int main() { int n = 15; cout << "Following are the alternate" << " prime numbers smaller " << " than or equal to " << n << endl; SieveOfEratosthenes(n); return 0; } |
Java
// Java program to print all primes // smaller than or equal to n using // Sieve of Eratosthenes class GFG { static void SieveOfEratosthenes( int n) { // Create a boolean array "prime[0..n]" // and initialize all entries it as // true. A value in prime[i] will // finally be false if i is Not a // prime, else true. boolean []prime = new boolean [n + 1 ]; for ( int i = 0 ; i < prime.length; i++) prime[i] = true ; for ( int p = 2 ; p * p <= n; p++) { // If prime[p] is not changed, // then it is a prime if (prime[p] == true ) { // Update all multiples of p for ( int i = p * 2 ; i <= n; i += p) prime[i] = false ; } } // Print all prime numbers boolean flag = true ; for ( int p = 2 ; p <= n; p++) { if (prime[p]) { if (flag) { System.out.print(p + " " ); flag = false ; } else { // for next prime // to get printed flag = true ; } } } } // Driver Code public static void main(String[] args) { int n = 15 ; System.out.println( "Following are the alternate" + " prime numbers smaller " + "than or equal to " + n ); SieveOfEratosthenes(n); } } // This code is contributed // by ChitraNayal |
Python 3
# Python 3 program to print all # equal to n using Sieve of Eratosthenes def SieveOfEratosthenes(n): # Create a boolean array # "prime[0..n]" and initialize # all entries it as true. A value # in prime[i] will finally be false # if i is Not a prime, else true. prime = [ None ] * (n + 1 ) for i in range ( len (prime)): prime[i] = True p = 2 while p * p < = n: # If prime[p] is not changed, # then it is a prime if (prime[p] = = True ): # Update all multiples of p for i in range (p * 2 , n + 1 , p): prime[i] = False p + = 1 # Print all prime numbers flag = True for p in range ( 2 , n + 1 ): if (prime[p]): if (flag): print ( str (p), end = " " ) flag = False else : # for next prime to get printed flag = True # Driver Code if __name__ = = "__main__" : n = 15 print ( "Following are the alternate" + " prime numbers smaller " + "than or equal to " + str (n)) SieveOfEratosthenes(n) # This code is contributed # by ChitraNayal |
C#
// C# program to print all primes // smaller than or equal to n using // Sieve of Eratosthenes using System; class GFG { static void SieveOfEratosthenes( int n) { // Create a bool array "prime[0..n]" // and initialize all entries it as // true. A value in prime[i] will // finally be false if i is Not a // prime, else true. bool [] prime = new bool [n + 1]; for ( int i = 0; i < prime.Length; i++) prime[i] = true ; for ( int p = 2; p * p <= n; p++) { // If prime[p] is not changed, // then it is a prime if (prime[p] == true ) { // Update all multiples of p for ( int i = p * 2; i <= n; i += p) prime[i] = false ; } } // Print all prime numbers bool flag = true ; for ( int p = 2; p <= n; p++) { if (prime[p]) { if (flag) { Console.Write(p + " " ); flag = false ; } else { // for next prime to // get printed flag = true ; } } } } // Driver Code public static void Main() { int n = 15; Console.Write( "Following are the alternate" + " prime numbers smaller " + "than or equal to " + n + "\n" ); SieveOfEratosthenes(n); } } // This code is contributed // by ChitraNayal |
PHP
<?php // PHP program to print all // primes smaller than or // equal to n using Sieve // of Eratosthenes function SieveOfEratosthenes( $n ) { // Create a boolean array // "prime[0..n]" and initialize // all entries it as true. A value // in prime[i] will finally be // false if i is Not a prime, else true. $prime = array (); for ( $i = 0; $i <= $n ; $i ++) $prime [ $i ] = true; for ( $p = 2; $p * $p <= $n ; $p ++) { // If prime[p] is not changed, // then it is a prime if ( $prime [ $p ] == true) { // Update all multiples of p for ( $i = $p * 2; $i <= $n ; $i += $p ) $prime [ $i ] = false; } } // Print all prime numbers $flag = true; for ( $p = 2; $p <= $n ; $p ++) { if ( $prime [ $p ]) { if ( $flag ) { echo $p . " " ; $flag = false; } else { // for next prime to // get printed $flag = true; } } } } // Driver Code $n = 15; echo "Following are the alternate" . " prime numbers smaller " . "than or equal to " . $n . "\n" ; SieveOfEratosthenes( $n ); // This code is contributed // by ChitraNayal ?> |
Javascript
<script> // Javascript program to print all primes // smaller than or equal to n using // Sieve of Eratosthenes function SieveOfEratosthenes(n) { // Create a boolean array "prime[0..n]" // and initialize all entries it as // true. A value in prime[i] will // finally be false if i is Not a // prime, else true. let prime = new Array(n + 1); for (let i = 0; i < prime.length; i++) prime[i] = true ; for (let p = 2; p * p <= n; p++) { // If prime[p] is not changed, // then it is a prime if (prime[p] == true ) { // Update all multiples of p for (let i = p * 2; i <= n; i += p) prime[i] = false ; } } // Print all prime numbers let flag = true ; for (let p = 2; p <= n; p++) { if (prime[p]) { if (flag) { document.write(p + " " ); flag = false ; } else { // for next prime // to get printed flag = true ; } } } } // Driver Code let n = 15; document.write( "Following are the alternate" + " prime numbers smaller " + "than or equal to " + n + "<br>" ); SieveOfEratosthenes(n); // This code is contributed by avanitrachhadiya2155 </script> |
Output:
Following are the alternate prime numbers smaller than or equal to 15 2 5 11
Time complexity: O(*log(log(N))) for applying sieving and O(N) for traversing the sieve.