Given starting and endpoints, write a Python program to print all odd numbers in that given range.
Example:
Input: start = 4, end = 15
Output: 5, 7, 9, 11, 13, 15
Input: start = 3, end = 11
Output: 3, 5, 7, 9, 11
Example #1: Print all odd numbers from the given list using for loop
- Define the start and end limit of the range.
- Iterate from start till the range in the list using for loop and
- check if num % 2 != 0.
- If the condition satisfies, then only print the number.
Python3
start, end = 4 , 19
for num in range (start, end + 1 ):
if num % 2 ! = 0 :
print (num, end = " " )
|
Output5 7 9 11 13 15 17 19
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space is used.
Example #2: Taking range limit from user input
Python3
start = int ( input ( "Enter the start of range:" ))
end = int ( input ( "Enter the end of range:" ))
for num in range (start, end + 1 ):
if num % 2 ! = 0 :
print (num)
|
Output:
Enter the start of range: 3
Enter the end of range: 7
3
5
7
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space is used.
Example #3: Taking range limit from user input or with static inputs to reduce code execution time and to increase code performance.
Python3
start = 5
end = 20
if start % 2 ! = 0 :
for num in range (start, end + 1 , 2 ):
print (num, end = " " )
else :
for num in range (start + 1 , end + 1 , 2 ):
print (num, end = " " )
|
Output5 7 9 11 13 15 17 19
Time Complexity: O(N), Here N is the difference of the end and start.
Auxiliary Space: O(1), As constant extra space is used.
Example #4: Taking range limit from user input
Python3
start = int ( input ( "Enter the start of range: " ))
end = int ( input ( "Enter the end of range: " ))
even_list = range (start, end + 1 )[start % 2 :: 2 ]
for num in even_list:
print (num, end = " " )
|
Enter the start of range: 3
Enter the end of range: 11
3 5 7 9 11
Time Complexity: O(n)
Auxiliary Space: O(n), As constant extra space is used.
Method: Using the lambda function
Python3
a = 3 ;b = 11
li = []
for i in range (a,b + 1 ):
li.append(i)
odd_num = list ( filter ( lambda x: (x % 2 ! = 0 ),li))
print (odd_num)
|
Time Complexity: O(n)
Auxiliary Space: O(1), As constant extra space is used.
Method: Using recursion
Python3
def odd(num1,num2):
if num1>num2:
return
if num1& 1 :
print (num1,end = " " )
return odd(num1 + 2 ,num2)
else :
return odd(num1 + 1 ,num2)
num1 = 5 ;num2 = 15
odd(num1,num2)
|
Time Complexity: O(n)
Auxiliary Space: O(1), As the function is tail recursive, no stack space is used.
Method: Using list comprehension
Python3
x = [i for i in range ( 4 , 15 + 1 ) if i % 2 ! = 0 ]
print ( * x)
|
Time Complexity: O(n)
Auxiliary Space: O(1), As constant extra space is used.
Method: Using the enumerate function
Python3
a = 4 ;b = 15 ;l = []
for i in range (a,b + 1 ):
l.append(i)
print ([a for j,a in enumerate (l) if a % 2 ! = 0 ])
|
Output[5, 7, 9, 11, 13, 15]
Time Complexity: O(n)
Auxiliary Space: O(1), As constant extra space is used.
Method: Using pass
Python3
a = 4 ;b = 15
for i in range (a,b + 1 ):
if i % 2 = = 0 :
pass
else :
print (i,end = " " )
|
Time Complexity: O(n)
Auxiliary Space: O(1), As constant extra space is used.
Method: Using filter method:
Python3
a = 4 ;
b = 15 ;
l = filter ( lambda a : a % 2 , range (a, b + 1 ))
print ( * l)
|
Time Complexity: O(n)
Auxiliary Space: O(1), As constant extra space is used.
Method: Using bitwise & operator
Python3
start, end = 4 , 19
for num in range (start, end + 1 ):
if num & 1 ! = 0 :
print (num, end = " " )
|
Output5 7 9 11 13 15 17 19
Time Complexity: O(n)
Auxiliary Space: O(1), As constant extra space is used.
Method: Using bitwise | operator
Python3
start, end = 4 , 19
for num in range (start, end + 1 ):
if num | 1 = = num:
print (num, end = " " )
|
Output5 7 9 11 13 15 17 19
Time Complexity: O(n)
Auxiliary Space: O(1)
Method : Using numpy module:
Algorithm:
1.Input the range of numbers, a and b.
2.Import the NumPy library.
3.Create an array containing numbers in the range using np.arange(a, b+1).
4.Apply a boolean filter to select only the even numbers using arr[arr % 2 != 0].
5.Print the resulting array of even numbers using print(*evens).
Python3
import numpy as np
a = 3
b = 15
arr = np.arange(a, b + 1 )
evens = arr[arr % 2 ! = 0 ]
print ( * evens)
|
Output:
3 5 7 9 11 13 15
The time complexity :O(N), where N is the number of elements in the given range.
The auxiliary space :O(N), since it creates an array to hold all the numbers in the range, and then another array to hold only the even numbers.
Method: Using continue keyword
Approach:
- Define the start and end limit of the range.
- Iterate from start till the range in the list using for loop and
- Check the condition, if (i % 2) == 0.
- If condition satisfies, then skip the current iteration and increment the ith value.
- If condition doesn’t satisfies, then only print the number.
Python3
a = 4
b = 15
for i in range (a, b + 1 ):
if i % 2 = = 0 :
continue
else :
print (i, end = " " )
|
Time Complexity: O(n)
Auxiliary Space: O(1), as constant extra space is used.
Approach:
- Define the start and end limit of the range.
- Using filterfalse method in the range between start and end limit.
- filterfalse method checks the condition, x%2==0.
- Any number that satisfies the above condition is not a part of the result.
- The final result holds the number that is false in the above condition.
- print the final result.
Python3
import itertools
a = 3
b = 15
evens = list (itertools.filterfalse( lambda x: x % 2 = = 0 , range (a, b + 1 )))
print ( * evens)
|
Output:
3 5 7 9 11 13 15
Time Complexity: O(N), Here N is the range between starting and ending limit.
Auxiliary Space: O(1), Because no extra space is used.