Phythagoraeische Tripel (Optimierung gesucht)
-
Hallo!
Meine Aufgabe ist einfach, ich zitiere: "Schreiben Sie ein Programm, welches durch reines Probieren alle pythagoräischen Tripel bis zu einer oberen Grenze N findet."
Dazu soll man eben 3 ineinander geschachtelte for-Schleifen verwenden.
Hier also meine 3 Schleifen:
int a; int b=1; int c; int i = 1; int m = 1; int p = 1; for(i=1; i<=m; i ++){ a = i*i; for(m=1; m<=p; m ++){ if (a!= b) b = m*m; for(p=1; p<=N; p ++){ c = p*p; if(c == (a + b))Aber es kommt mir so vor, als wäre meine Lösung ziemlich dilettantisch.
Wüsste jemand eine elegantere Lösung? Die 3 Schleifen müssen dabei aber erhalten bleiben.
-
-
unsigned pyt(unsigned limit) { unsigned found = 0; for(unsigned a = 1; a <= limit; a++) { unsigned a2 = a*a; for(unsigned b = a; b <= limit; b++) { unsigned sum = a2 + b*b; unsigned c; for(c = b + 1; (c*c) < sum; c++) ; if((c*c) == sum) { printf("%d^2 + %d^2 = %d^2\n", a, b, c); printf("%d^2 + %d^2 = %d^2\n", b, a, c); found += 2; } } } return found; }