ピタゴラス数についての考察を紹介します。
c2≦nを満たすピタゴラス数(a2 + b2 = c2 a,b,c(1≦a≦b≦c)は正整数)の求め方を考察する。
cの値を決めて、下図の赤い線の方向に、左から右へピタゴラス数を探索する。
探索が終了すれば、cの値をひとつ増やし、同様の探索をc2の値がnの値に達するまで繰り返す。
●ピタゴラス数生成プログラム
/* << pg111.c >> */ #include <stdio.h> #include <math.h> int main () { int a,b,c, count, /* ピタゴラス数の個数。*/ n, /* nの値。*/ w; /* nの値を読み込む。*/ scanf("%d",&n); /* 初期設定。*/ c = 1; count = 0; /* ピタゴラス数の探索。*/ while( c*c <= n ) { for( a=1; 2*a*a<=c*c; a++ ) { for( b=c/sqrt(2.0); b<=c; b++ ) { w = a*a + b*b - c*c; if( w > 0 ) { break; } if( w == 0 ) { count++; printf("%d: %d %d %d\n",count,a,b,c); } } } c++; } printf("n=%d count=%d\n",n,count); }