using System;
public class Test
{
public static int sqr (int val)
{
int mask = 1;
int factorsum = val;
int sum = 0;
while (val >= mask)
{
if ((val & mask) == mask)
{
sum += factorsum;
}
factorsum += factorsum;
mask += mask;
}
return sum;
}
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("{0} -> {1}", i, sqr(i));
}
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJCglwdWJsaWMgc3RhdGljIGludCBzcXIgKGludCB2YWwpCgl7CgkJaW50IG1hc2sgPSAxOwoJCWludCBmYWN0b3JzdW0gPSB2YWw7CgkJaW50IHN1bSA9IDA7CgkJd2hpbGUgKHZhbCA+PSBtYXNrKQoJCXsKCQkgICAgaWYgKCh2YWwgJiBtYXNrKSA9PSBtYXNrKQoJCSAgICB7CiAgICAgICAgCQlzdW0gKz0gZmFjdG9yc3VtOwogICAgCQl9CiAgICAJCWZhY3RvcnN1bSArPSBmYWN0b3JzdW07CiAgICAJCW1hc2sgKz0gbWFzazsKCQl9CgkJcmV0dXJuIHN1bTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCWZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykKCQl7CgkJCUNvbnNvbGUuV3JpdGVMaW5lKCJ7MH0gLT4gezF9IiwgaSwgc3FyKGkpKTsKCQl9Cgl9Cn0=