Primeiro vai precisar de um inteiro bem longo:
// necessária arquitetura x86-64 ou amd64
unsigned long long result = 1;
Depois faça um laço que se repita 63 vezes...
e vá multiplicando esse "result" por 2 a cada vez que se passa por ele...
assim você vai ter o tanto de grãos da última casa
Se é para somar todos eles basta colocar uma variável para ir somando depois de multiplicar o result..
observe que esse valor deve equivaler ao seguinte hexadecimal: 0xFFFFFFFFFFFFFFFF que equivale a 18446744073709551615.
Leonardo Bos