omportamento estranho de "não assinado, longo e longo" [duplicado]

Possible Duplicate:
Como você imprime um int longo e não assinado?

#include <cstdio>

int main ()
{
    unsigned long long int n;
    scanf("%llu",&n);
    printf("n: %llu\n",n);
    n /= 3;
    printf("n/3: %llu\n",n);
    return 0;
}

Qualquer coisa que eu insira, eu recebo uma saída muito estranha, por exemplo:

n: 1
n/3: 2863311531

o

n: 2
n/3: 2863311531

o

n: 1000
n/3: 2863311864

Qual o motivo? Como devo fazer isso corretamente?

(g ++ 3.4.2, Win XP)

questionAnswers(1)

yourAnswerToTheQuestion