import java.math.*;public class Test{ public static void main(String[] args){ int number=0; int a=3,b,c; double d; for(;a<100;a++) for(b=a+1;b<100;b++){ d=Math.sqrt(a*a+b*b); c=(int)d; if(c>100)break; if(d-c<=0){ number++; System.out.print("("+a+""+b+""+c+")"); if(number%4==0){ System.out.println(); } } } System.out.println("共有"+number+"組"); } }
C++
#include <iostream>using namespace std;int main(){ int a, b, c; for (a = 1; a < 100; a++) for (b = 1; b < 100; b++) for (c = 1; c < 100; c++) if (a<b && a*a + b*b == c*c) cout << a << " " << b << " " << c << endl; return 0;}
Python3.x
#通過公式求勾股數def Ht(k, m): ''' a = k * (m * m - n * n) b = k * (2 * m * n) c = k * (m * m + n * n) ''' result = [] for k0 in range(1, k + 1): for m0 in range(2, m + 1): for n0 in range(1, m0): a = k0 * (m0 * m0 - n0 * n0) b = k0 * (2 * m0 * n0) c = k0 * (m0 * m0 + n0 * n0) if not {a, b, c} in result: result.append({a, b, c}) result = [sorted(list(x)) for x in result] return (sorted(result,key=lambda x:x[0]), '共有 {length} 組勾股數'.format(length = len(result)))Ht(10, 10)