





snake_case_				=			[
    (1000, 'M'),
    (900, 'CM'),
    (500, 'D'),
    (400, 'CD'),
    (100, 'C'),
    (90, 'XC'),
    (50, 'L'),
    (40, 'XL'),
    (10, 'X'),
    (9, 'IX'),
    (5, 'V'),
    (4, 'IV'),
    (1, 'I'),
]






def lowerCamelCase__    (							snake_case_	:  str       )      ->				int:
   __snake_case							       =   {'''I''': 1, '''V''': 5, '''X''': 10, '''L''': 50, '''C''': 100, '''D''': 500, '''M''': 1000}
   __snake_case							       =   0
   __snake_case							       =   0
   while place < len(snake_case_       ):
      if (place + 1 < len(snake_case_       )) and (vals[roman[place]] < vals[roman[place + 1]]):
         total += vals[roman[place + 1]] - vals[roman[place]]
         place += 2
      else:
         total += vals[roman[place]]
         place += 1
   return total






def lowerCamelCase__    (							snake_case_	:  int       )      ->				str:
   __snake_case							       =   []
   for arabic, roman in ROMAN:
      ((__snake_case)       ,	(__snake_case))							       =   divmod(snake_case_       ,      snake_case_       )
      result.append(roman * factor       )
      if number == 0:
         break
   return "".join(snake_case_       )


if __name__ == "__main__":
    import doctest

    doctest.testmod()








def lowerCamelCase__    (							snake_case_	:  int       )      ->				int:
   if not isinstance(snake_case_       ,      snake_case_       ) or number < 0:
      raise ValueError('''Input must be a non-negative integer'''       )

   __snake_case							       =   0
   while number:
      # This way we arrive at next set bit (next 1) instead of looping
      # through each bit and checking for 1s hence the
      # loop won't run 32 times it will only run the number of `1` times
      number &= number - 1
      count += 1
   return count


if __name__ == "__main__":
    import doctest

    doctest.testmod()

