Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

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
My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!