#include <stdio.h>

/*
各进制转换方法可参考图示:
https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
十进制整数转其他进制:
如二进制,则除2取余,直至商为0得到最后一个余数;
  对应二进制数为除2过程中所得余数倒着排列,如所得余数依次为011,则对应二进制数为110

其他进制之间的转换可借助十进制作为中转,先转为十进制,再转到对应进制,感觉应该会更方便(按权展开相加即可得到十进制数)

还可借助转换说明:%d或%i(十进制),%x或%X(十六进制),%o(八进制)等得到对应进制
*/

int findNumberOf1(int num)
{
    int count=0;

    // 如1: 1/2=0...1
    while(num){
        if(num%2==1){
            count++;
//            printf("%d\n",count);
        }
        num /= 2;
    }

    return count;
}

int main()
{
    int n;

    while(scanf("%d",&n)!=EOF){
        int ret;
        ret = findNumberOf1(n);
        printf("%d\n",ret);
    }

    return 0;
}