Problem:
Fermat's Last Theorem

In the 17th century, Fermat wrote that he proved for any integer $n \geq 3$,
there exist no positive integers $x$, $y$, $z$ such that
$x^n + y^n = z^n$.
However he never disclosed the proof. Later, this claim was named
Fermat's Last Theorem or Fermat's Conjecture.

If Fermat's Last Theorem holds in case of $n$, then it also holds
in case of any multiple of $n$.
Thus it suffices to prove cases where $n$ is a prime number
and the special case $n$ = 4.

A proof for the case $n$ = 4 was found in Fermat's own memorandum.
The case $n$ = 3 was proved by Euler in the 18th century.
After that, many mathematicians attacked Fermat's Last Theorem.
Some of them proved some part of the theorem, which was a
partial success.
Many others obtained nothing.
It was a long history.
Finally, Wiles proved Fermat's Last Theorem in 1994.

Fermat's Last Theorem implies that for any integers $n \geq 3$
and $z > 1$, it always holds that

$z^n > $ max { $x^n + y^n | x > 0, y > 0, x^n + y^n \leq z^n$ }.

Your mission is to write a program that verifies this in the case
$n$ = 3 for a given $z$. Your program should read in
integer numbers greater than 1, and, corresponding to each input
$z$, it should output the following:

$z^3 - $ max { $x^3 + y^3 | x > 0, y > 0, x^3 + y^3 \leq z^3$ }.

Input

The input is a sequence of lines each containing one positive integer
number followed by a line containing a zero. You may assume that all of
the input integers are greater than 1 and less than 1111.

Output

The output should consist of lines each containing a single
integer number. Each output integer should be

$z^3 - $ max { $x^3 + y^3 | x > 0, y > 0, x^3 + y^3 \leq z^3$ }.

for the corresponding input integer z.
No other characters should appear in any output line.

Sample Input

6
4
2
0

Output for the Sample Input

27
10
6

Solution in C++ (judge verdict: Time Limit Exceeded)

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

int main(){
    int n;
    while(cin >> n, n){
        long long int ans = 100000;
        for(int i=1; pow(i,3) < pow(n, 3); i++){
            for(int j=1; pow(i,3)+pow(j,3) < pow(n,3); j++){
                long long int m = pow(n,3)-pow(i, 3)-pow(j, 3);
                if(ans > m) ans = m;
            }
        }
        cout << ans << endl;
    }
}