有这样一个性质:C(n,m)%p=C(p1,q1)*C(p2,q2).......%p,其中pkpk-1...p1,qkqk-1...q1分别是n,m在p进制下的组成。

就完了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,bit=0;
int main()
{
    while (scanf("%d",&n)!=EOF)
    {
        bit=0;
        while (n)
        {
            if (n&1) bit++;
            n>>=1;
        }
        printf("%d\n",(1<<bit));
    }
    return 0;
}