title: Strange "unsigned long long int" behaviour
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/2844/how-do-you-printf-an-unsigned-long-long-int">How do you printf an unsigned long long int?</a>  </p>
  </blockquote>
  
  
  
  <pre><code>#include &lt;cstdio&gt;
  
  int main ()
  {
      unsigned long long int n;
      scanf("%llu",&amp;n);
      printf("n: %llu\n",n);
      n /= 3;
      printf("n/3: %llu\n",n);
      return 0;
  }
  </code></pre>
  
  <p>Whatever I put in input, I get very strange output, for example:</p>
  
  <pre><code>n: 1
  n/3: 2863311531
  </code></pre>
  
  <p>or</p>
  
  <pre><code>n: 2
  n/3: 2863311531
  </code></pre>
  
  <p>or</p>
  
  <pre><code>n: 1000
  n/3: 2863311864
  </code></pre>
  
  <p>What's the reason? How should I do this correctly?</p>
  
  <p>(g++ 3.4.2, Win XP)</p>