Skip to content
Related Articles

Related Articles

Python map function | Count total set bits in all numbers from 1 to n
  • Last Updated : 30 Dec, 2017

Given a positive integer n, count the total number of set bits in binary representation of all numbers from 1 to n.

Examples:

Input: n = 3
Output:  4
Binary representations are 1, 2 and 3
1, 10 and 11 respectively. Total set
bits are 1 + 1 + 2 = 4.

Input: n = 6
Output: 9

Input: n = 7
Output: 12

Input: n = 8
Output: 13

We have existing solution for this problem please refer Count total set bits in all numbers from 1 to n link. We can solve this problem in python using map() function. Approach is very simple,

  1. Write a function which first converts number into binary using bin(num) function and returns count of set bits in it.
  2. Map user defined function on list of numbers from 1 to n and we will get list of individual count of set bits in each number.
  3. Sum up count of all set bits.




# Function to Count total set bits in all numbers
# from 1 to n
  
# user defined function
def countSetBit(num):
  
     # convert decimal value into binary and
     # count all 1's in it
     binary = bin(num)
  
     return len([ch for ch in binary if ch=='1'])
  
# function which count set bits in each number
def countSetBitAll(input):
      
    # map count function on each number
    print (sum(map(countSetBit,input)))
  
# Driver program
if __name__ == "__main__":
    n = 8
    input=[]
    for i in range(1,n+1):
         input.append(i)
    countSetBitAll(input)

Output:

13

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :