fork download
  1. // floriankirsch.de/c++/tripel.html
  2.  
  3. #include <chrono>
  4. #include <iostream>
  5.  
  6. bool isTripel(int64_t a, int64_t b, int64_t c)
  7. {
  8. return a * a + b * b == c * c;
  9. }
  10.  
  11. void findTripel0_TwoNestedLoops(int64_t c)
  12. {
  13. for (int64_t a = 1; a < c; ++a)
  14. {
  15. for (int64_t b = a; b < c; ++b)
  16. {
  17. if (isTripel(a, b, c))
  18. {
  19. std::cout << a << "² + " << b << "² = " << c << \n";
  20. }
  21. }
  22. }
  23. }
  24.  
  25. int main()
  26. {
  27. std::cout << "Pythagorean tripels found in 1 millisecond\n";
  28. auto start = std::chrono::steady_clock::now();
  29. for (int64_t c=1; ; ++c)
  30. {
  31. findTripel0_TwoNestedLoops(c);
  32. auto duration = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now() - start);
  33. if (duration.count() > 1000)
  34. break;
  35. }
  36. return 0;
  37. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
Pythagorean tripels found in 1 millisecond
3² + 4² = 5²
6² + 8² = 10²
5² + 12² = 13²
9² + 12² = 15²
8² + 15² = 17²
12² + 16² = 20²
7² + 24² = 25²
15² + 20² = 25²
10² + 24² = 26²
20² + 21² = 29²
18² + 24² = 30²
16² + 30² = 34²
21² + 28² = 35²
12² + 35² = 37²
15² + 36² = 39²
24² + 32² = 40²
9² + 40² = 41²
27² + 36² = 45²
14² + 48² = 50²
30² + 40² = 50²
24² + 45² = 51²
20² + 48² = 52²
28² + 45² = 53²
33² + 44² = 55²
40² + 42² = 58²
36² + 48² = 60²
11² + 60² = 61²
16² + 63² = 65²
25² + 60² = 65²
33² + 56² = 65²
39² + 52² = 65²
32² + 60² = 68²
42² + 56² = 70²
48² + 55² = 73²
24² + 70² = 74²
21² + 72² = 75²
45² + 60² = 75²
30² + 72² = 78²
48² + 64² = 80²
18² + 80² = 82²
13² + 84² = 85²
36² + 77² = 85²
40² + 75² = 85²
51² + 68² = 85²
60² + 63² = 87²
39² + 80² = 89²
54² + 72² = 90²
35² + 84² = 91²
57² + 76² = 95²
65² + 72² = 97²
28² + 96² = 100²
60² + 80² = 100²
20² + 99² = 101²
48² + 90² = 102²
40² + 96² = 104²
63² + 84² = 105²
56² + 90² = 106²
60² + 91² = 109²
66² + 88² = 110²
36² + 105² = 111²
15² + 112² = 113²
69² + 92² = 115²
80² + 84² = 116²
45² + 108² = 117²
56² + 105² = 119²
72² + 96² = 120²
22² + 120² = 122²
27² + 120² = 123²
35² + 120² = 125²
44² + 117² = 125²
75² + 100² = 125²
32² + 126² = 130²
50² + 120² = 130²
66² + 112² = 130²
78² + 104² = 130²
81² + 108² = 135²
64² + 120² = 136²
88² + 105² = 137²
84² + 112² = 140²
55² + 132² = 143²
17² + 144² = 145²
24² + 143² = 145²
87² + 116² = 145²
100² + 105² = 145²
96² + 110² = 146²
48² + 140² = 148²
51² + 140² = 149²
42² + 144² = 150²
90² + 120² = 150²
72² + 135² = 153²
93² + 124² = 155²
60² + 144² = 156²
85² + 132² = 157²
84² + 135² = 159²
96² + 128² = 160²
36² + 160² = 164²
99² + 132² = 165²
65² + 156² = 169²
119² + 120² = 169²
26² + 168² = 170²
72² + 154² = 170²
80² + 150² = 170²
102² + 136² = 170²
52² + 165² = 173²
120² + 126² = 174²
49² + 168² = 175²
105² + 140² = 175²
78² + 160² = 178²
108² + 144² = 180²
19² + 180² = 181²
70² + 168² = 182²
33² + 180² = 183²
57² + 176² = 185²
60² + 175² = 185²
104² + 153² = 185²
111² + 148² = 185²
88² + 165² = 187²
114² + 152² = 190²
95² + 168² = 193²
130² + 144² = 194²
48² + 189² = 195²
75² + 180² = 195²
99² + 168² = 195²
117² + 156² = 195²
28² + 195² = 197²
56² + 192² = 200²
120² + 160² = 200²