# Print even and odd numbers in a given range using recursion

• Difficulty Level : Basic
• Last Updated : 23 Apr, 2021

Given two integers L and R, the task is to print all the even and odd numbers from L to R using recursion.

Examples:

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Input: L = 1, R = 10
Output:
Even numbers: 2 4 6 8 10
Odd numbers: 1 3 5 7 9

Input: L = 10, R = 25
Output:
Even numbers:10 12 14 16 18 20 22 24
Odd numbers:11 13 15 17 19 21 23 25

Approach: Follow the steps below to solve the problem using Recursion:

• Traverse the range [R, L].
• Print the odd elements from the range using recursion using the following recurrence relation:

Odd(L, R) = R % 2 == 1? Odd(L, R – 2) : Odd(L, R – 1)

• Print the even elements from the range using recursion using the following recurrence relation:

Even(L, R) = R % 2 == 0 ? Even(L, R – 2) : Even(L, R – 1)

Below is the implementation of the above approach:

## C++

 `// C++ program to implement``// the above approach``#include ``using` `namespace` `std;` `// Function to print all the``// even numbers from L to R``void` `Even(``int` `L, ``int` `R)``{` `    ``// Base case``    ``if` `(R < L) {``        ``return``;``    ``}` `    ``// Recurrence relation``    ``R % 2 == 0 ? Even(L, R - 2)``               ``: Even(L, R - 1);` `    ``// Check if R is even``    ``if` `(R % 2 == 0) {``        ``cout << R << ``" "``;``    ``}``}` `// Function to print all the``// odd numbers from L to R``void` `Odd(``int` `L, ``int` `R)``{` `    ``// Base case``    ``if` `(R < L) {``        ``return``;``    ``}` `    ``// Recurrence relation``    ``R % 2 == 1 ? Odd(L, R - 2)``               ``: Odd(L, R - 1);` `    ``// Check if R is even``    ``if` `(R % 2 == 1) {``        ``cout << R << ``" "``;``    ``}``}` `// Driver Code``int` `main()``{``    ``int` `L = 10, R = 25;``    ``cout << ``"Even numbers:"``;` `    ``// Print all the``    ``// even numbers``    ``Even(L, R);``    ``cout << endl;` `    ``// Print all the``    ``// odd numbers``    ``cout << ``"Odd numbers:"``;``    ``Odd(L, R);``}`

## Java

 `// Java program to implement``// the above approach``import` `java.util.*;``class` `GFG{` `// Function to print``// all the even numbers``// from L to R``static` `void` `Even(``int` `L,``                 ``int` `R)``{``  ``// Base case``  ``if` `(R < L)``  ``{``    ``return``;``  ``}` `  ``// Recurrence relation``  ``if``(R % ``2` `== ``0` `)``    ``Even(L, R - ``2``);``  ``else``    ``Even(L, R - ``1``);` `  ``// Check if R is even``  ``if` `(R % ``2` `== ``0``)``  ``{``    ``System.out.print(R + ``" "``);``  ``}``}` `// Function to print``// all the odd numbers``// from L to R``static` `void` `Odd(``int` `L,``                ``int` `R)``{``  ``// Base case``  ``if` `(R < L)``  ``{``    ``return``;``  ``}` `  ``// Recurrence relation``  ``if``(R % ``2` `== ``1` `)``    ``Odd(L, R - ``2``);``  ``else``    ``Odd(L, R - ``1``);` `  ``// Check if R is even``  ``if` `(R % ``2` `== ``1``)``  ``{``    ``System.out.print(R + ``" "``);``  ``}``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``  ``int` `L = ``10``, R = ``25``;``  ``System.out.print(``"Even numbers:"``);` `  ``// Print all the``  ``// even numbers``  ``Even(L, R);``  ``System.out.println();` `  ``// Print all the``  ``// odd numbers``  ``System.out.print(``"Odd numbers:"``);``  ``Odd(L, R);``}``}` `// This code is contributed by Rajput-Ji`

## Python3

 `# Python3 program to implement``# the above approach` `# Function to print all the``# even numbers from L to R``def` `Even(L, R):``    ` `    ``# Base case``    ``if` `(R < L):``        ``return` `    ``# Recurrence relation``    ``if` `(R ``%` `2` `=``=` `0``):``        ``Even(L, R ``-` `2``)``    ``else``:``        ``Even(L, R ``-` `1``)` `    ``# Check if R is even``    ``if` `(R ``%` `2` `=``=` `0``):``        ``print``(R, end ``=` `" "``)` `# Function to print all the``# odd numbers from L to R``def` `Odd(L, R):``    ` `    ``# Base case``    ``if` `(R < L):``        ``return` `    ``# Recurrence relation``    ``if` `(R ``%` `2` `=``=` `1``):``        ``Odd(L, R ``-` `2``)``    ``else``:``        ``Odd(L, R ``-` `1``)` `    ``# Check if R is even``    ``if` `(R ``%` `2` `=``=` `1``):``        ``print``(R, end ``=` `" "``)` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ` `    ``L ``=` `10``    ``R ``=` `25``    ` `    ``print``(``"Even numbers:"``)` `    ``# Print all the``    ``# even numbers``    ``Even(L, R)``    ``print``()` `    ``# Print all the``    ``# odd numbers``    ``print``(``"Odd numbers:"``)``    ``Odd(L, R)` `# This code is contributed by Amit Katiyar`

## C#

 `// C# program to implement``// the above approach``using` `System;``class` `GFG{` `// Function to print``// all the even numbers``// from L to R``static` `void` `Even(``int` `L,``                 ``int` `R)``{``  ``// Base case``  ``if` `(R < L)``  ``{``    ``return``;``  ``}` `  ``// Recurrence relation``  ``if``(R % 2 == 0 )``    ``Even(L, R - 2);``  ``else``    ``Even(L, R - 1);` `  ``// Check if R is even``  ``if` `(R % 2 == 0)``  ``{``    ``Console.Write(R + ``" "``);``  ``}``}` `// Function to print``// all the odd numbers``// from L to R``static` `void` `Odd(``int` `L,``                ``int` `R)``{``  ``// Base case``  ``if` `(R < L)``  ``{``    ``return``;``  ``}` `  ``// Recurrence relation``  ``if``(R % 2 == 1 )``    ``Odd(L, R - 2);``  ``else``    ``Odd(L, R - 1);` `  ``// Check if R is even``  ``if` `(R % 2 == 1)``  ``{``    ``Console.Write(R + ``" "``);``  ``}``}` `// Driver Code``public` `static` `void` `Main(String[] args)``{``  ``int` `L = 10, R = 25;``  ``Console.Write(``"Even numbers:"``);` `  ``// Print all the``  ``// even numbers``  ``Even(L, R);``  ``Console.WriteLine();` `  ``// Print all the``  ``// odd numbers``  ``Console.Write(``"Odd numbers:"``);``  ``Odd(L, R);``}``}` `// This code is contributed by 29AjayKumar`

## Javascript

 ``
Output:
```Even numbers:10 12 14 16 18 20 22 24
Odd numbers:11 13 15 17 19 21 23 25```

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up