Python Program for Number of elements with odd factors in given range
Last Updated :
03 Dec, 2018
Given a range [
n,
m], find the number of elements that have odd number of factors in the given range (
n and
m inclusive).
Examples:
Input : n = 5, m = 100
Output : 8
The numbers with odd factors are 9, 16, 25,
36, 49, 64, 81 and 100
Input : n = 8, m = 65
Output : 6
Input : n = 10, m = 23500
Output : 150
A
Simple Solution is to loop through all numbers starting from
n. For every number, check if it has an even number of factors. If it has an even number of factors then increment count of such numbers and finally print the number of such elements. To find all divisors of a natural number efficiently, refer
All divisors of a natural number
An
Efficient Solution is to observe the pattern. Only those numbers, which are
perfect Squares have an odd number of factors. Let us analyze this pattern through an example.
For example, 9 has odd number of factors, 1, 3 and 9. 16 also has odd number of factors, 1, 2, 4, 8, 16. The reason for this is, for numbers other than perfect squares, all factors are in the form of pairs, but for perfect squares, one factor is single and makes the total as odd.
How to find number of perfect squares in a range?
The answer is difference between square root of
m and
n-1 (
not n)
There is a little caveat. As both
n and
m are inclusive, if
n is a perfect square, we will get an answer which is less than one the actual answer. To understand this, consider range [4, 36]. Answer is 5 i.e., numbers 4, 9, 16, 25 and 36.
But if we do (36**0.5) - (4**0.5) we get 4. So to avoid this semantic error, we take
n-1.
Python3
# Python program to count number of odd squares
# in given range [n, m]
def countOddSquares(n, m):
return int(m**0.5) - int((n-1)**0.5)
# Driver code
n = 5
m = 100
print("Count is", countOddSquares(n, m))
# This code is contributed by
# Mohit Gupta_OMG <0_o>
Output:
Count is 8
Time Complexity: O(1)
Please refer complete article on
Number of elements with odd factors in given range for more details!
Similar Reads
Number of elements with odd factors in given range Given a range [n,m], find the number of elements that have odd number of factors in the given range (n and m inclusive). Examples : Input : n = 5, m = 100 Output : 8 The numbers with odd factors are 9, 16, 25, 36, 49, 64, 81 and 100 Input : n = 8, m = 65 Output : 6 Input : n = 10, m = 23500 Output :
4 min read
Python - Numbers in a list within a given range We are given a list and we are given a range we need to count how many number lies in the given range. For example, we are having a list n = [5, 15, 25, 35, 45, 55, 65, 75] and we are having range lower=20, upper=60 so we need to count how many element lies between this range so that the output shou
4 min read
Python Program to Find the Number Occurring Odd Number of Times Write a Python program for a given array of positive integers. All numbers occur an even number of times except one number which occurs an odd number of times. Find the number in O(n) time & constant space. Examples : Input: arr = {1, 2, 3, 2, 3, 1, 3}Output : 3 Input: arr = {5, 7, 2, 7, 5, 2, 5
3 min read
Total number of subsets in which the product of the elements is even Given an array arr[] of integer elements, the task is to find the total number of sub-sets of arr[] in which the product of the elements is even. Examples: Input: arr[] = {2, 2, 3} Output: 6 All possible sub-sets are {2}, {2}, {2, 2}, {2, 3}, {2, 3} and {2, 2, 3} Input: arr[] = {3, 3, 3} Output: 6 A
4 min read
Python Program for Check if count of divisors is even or odd Write a Python program for a given number ânâ, the task is to find its total number of divisors that are even or odd. Examples: Input : n = 10 Output: Even Input: n = 100Output: Odd Input: n = 125Output: Even Python Program for Check if count of divisors is even or odd using Naive Approach:A naive a
4 min read