このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1284632294/618
#  [1] 授業単元:C++ベーシック  
#  [2] 問題文(含コード&リンク): 三辺の長さがそれぞれx,y,zの三角形がある。x,y,zが整数値で1~100までの値をとるときに、 
#  この三角形が直角三角形になるときのx,y,zの組をすべて調べて、その組の数を求めるプログラムを作りなさい。 
#   
#  

'三辺の長さがそれぞれx,y,zの三角形がある。x,y,zが整数値で1~100までの値をとるときに、この三角形が直角三角形になるときのx,y,zの組をすべて調べて、その組の数を求める'(_直角三角形ならび,_その数) :-
        findall([_x,_y,_z],(
                    for(1,Nx,100),
                    for(1,Ny,100),
                    for(1,Nz,100),
                    直角三角形である(Nx,Ny,Nz)),_直角三角形ならび),
        Count(_直角三角形ならび,Count),
        _その数 is truncate(Count),!.
        
直角三角形である(_x,_y,_z) :-
        X2 is truncate(_x * _x),
        Y2 is truncate(_y * _y),
        Z2 is truncate(_z * _z),
        直角三角形の辺の二乗の関係(X2,Y2,Z2),!.

直角三角形の辺の二乗の関係(X2,Y2,Z2) :- X2 is Y2 + Z2,!.
直角三角形の辺の二乗の関係(X2,Y2,Z2) :- Y2 is X2 + Z2,!.
直角三角形の辺の二乗の関係(X2,Y2,Z2) :- Z2 is X2 + Y2,!.