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

• Difficulty Level : Basic
• Last Updated : 06 Oct, 2022

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

Examples:

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(R-L)
Auxiliary Space: O(R-L) for recursive stack space

My Personal Notes arrow_drop_up
Related Articles