クラスの割り当てとして、与えられた値 't' よりも低いすべてのピタゴラス数を生成する C プログラムを作成します。最初にEuclid の Formulaを使用してプリミティブ トリプレット (a, b, c) を生成し、1 < kc < t の形式 (ka, kb, kc) のすべてのトリプレットを出力するコードを次に示します。
for (i = 2; i < (sqrt(t) + 1); i++)
for (j = 1; j < i; j++)
if ((gcd(i,j) == 1) && ((i-j) % 2) && ((i*i + j*j) < t))
{
k = 0;
a = i * i - j * j;
b = 2 * i * j;
c = i * i + j * j;
while ((++k) * c < t)
printf("(%d, %d, %d)\n", k*a, k*b, k*c);
}
私が遭遇した他のほとんどのアルゴリズムは、ネストされたループを使用して平方和をチェックし、t が大きくなるにつれてこれよりも大幅に遅くなります。実際に高速であるという証拠を推測することは可能ですか?