noodles
15-07-2003, 18:19
Ho fatto un programma che calcola le terne pitagoriche. Il cateti non devono superare pero' la lunghezza di 500. Ve lo posto qua sotto:
#include<stdio.h>
int main(void)
{
int lato,lato1,ipo,var;
for (lato=1;lato<=500;++lato)
{ for (lato1=1;lato1<=500;lato1++)
{ var=(lato*lato)+(lato1*lato1);
for (ipo=1;ipo<=500000;ipo++)/*500000 è dato da 500^2*2 */
{
if (var==(ipo*ipo))
printf("%d\t%d\t%d\t%d\n", lato, lato1,
ipo, var);
}
}
}
}
Non riesco a capire dove sbaglio, vi posto una parte di output:
3 4 5 25
4 3 5 25
4 288 253820 82960
5 12 13 169
vi pare che la 3 terna vada bene?????
:confused: :confused:
come è possibile????
se metto una ulteriore if dopo if (var==(ipo*ipo)) in questo modo e includo anche <math.h>:
if (var==(ipo*ipo))
if (sqrt(var)==ipo)
printf("%d\t%d\t%d\t%d\n", lato, lato1,ipo, var);
il programma fuzniona bene.
(perdonate l'ignornaza, ma sto imparando)
#include<stdio.h>
int main(void)
{
int lato,lato1,ipo,var;
for (lato=1;lato<=500;++lato)
{ for (lato1=1;lato1<=500;lato1++)
{ var=(lato*lato)+(lato1*lato1);
for (ipo=1;ipo<=500000;ipo++)/*500000 è dato da 500^2*2 */
{
if (var==(ipo*ipo))
printf("%d\t%d\t%d\t%d\n", lato, lato1,
ipo, var);
}
}
}
}
Non riesco a capire dove sbaglio, vi posto una parte di output:
3 4 5 25
4 3 5 25
4 288 253820 82960
5 12 13 169
vi pare che la 3 terna vada bene?????
:confused: :confused:
come è possibile????
se metto una ulteriore if dopo if (var==(ipo*ipo)) in questo modo e includo anche <math.h>:
if (var==(ipo*ipo))
if (sqrt(var)==ipo)
printf("%d\t%d\t%d\t%d\n", lato, lato1,ipo, var);
il programma fuzniona bene.
(perdonate l'ignornaza, ma sto imparando)