Ova teorema tvrdi da za n>2 ne postoje cijeli brojevi x, y, z različiti od 0 takvi da je x^n + y^n = z^n.
Dakle, nisi sve dobro napisao, nigdje u teoremi ne piše da ovi brojevi moraju biti različiti... znači sva četiri broja mogu biti jednaka, ali logično ako su sva četiri jednaka, onda će sva četiri biti veća od 2, jer
n mora biti veći od 2..
U tvom programu, varijable
x,y,z i
n ne moraju biti
long, logično. i pokušaj što manje da koristiš "skokove" u programu (
goto naredba).
Evo i ja sam nešto probao, sad nisam 100% siguran ni da je moje tačno, ali...
Code:
#include<iostream.h>
#include<math.h>
main ()
{
long a, b, c;
bool tacna = true;
for (int n=3; n<=5; n++)
{
for (int x = -72; x <= 72; x++)
{
for (int y = -72; y <= 72; y++)
{
for (int z = -72; z <= 72; z++)
{
if (x != 0 && y != 0 && z != 0) {
a = pow(x, n);
b = pow(y, n);
c = pow(z, n);
if (a + b == c) {
cout << "Teorema nije tacna.\n";
cout<<x<<"^"<<n<<" + "<<y<<"^"<<n<<" != "<<z<<"^"<<n<<endl;
cout<<a<<" + "<<b<<" != "<<c<<endl;
cout<<a+b<<" != "<<c<<endl;
tacna = false;
break;
}
}
}
}
}
}
if (tacna == true) {
cout<<"Teorema je ipak tacna!";
}
cout<<"\n";
system ("pause");
}
I dobra prilika da pitam stručnjake sa foruma, da li će u ovom slučaju (naravno ako se zadovolji uslov)
break naredba izbaciti tok programa iz sve 4 for
petlje ili samo iz zadnje?