このディレクトリの索引
#  [1] 授業単元:情報処理 
#  [2] 問題文(含コード&リンク): 
#  レポート課題:フェルマーの予想 
#  フェルマーは、x^n+y^n=z^n (x,y,z,n:整数)においてn≧3に対して、 
#  この式を満たすものはないと断言した。これはつい最近になって証明された。 
#  n=3に対して、x,y,z≦100の範囲内でこれに対する反例がないか確認せよ。 
#  ヒント: 
#  一見すると、3重ループになるようであるが、 
#  うまく工夫して2重ループにせよ。 
#  [3] 環境 
#   [3.1] OS:Windows 
#   [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 6.0 
#   [3.3] 言語: C++ 
#  [4] 期限: 2006年11月7日まで 
#  [5] その他の制限: 基礎的な知識で出来るプログラミングでおねがいします。 

'x^n+y^n=z^n'(_x,_y,_z) :-
        '_x,_y,_z'(_x,_y,_z),
        '_x^3,_y^3,_z^3'(X,Y,Z),
        Z is X + Y.

'_x,_y,_z'(_x,_y,_z) :-
        between(1,100,_x),
        between(1,100,_y),
        between(1,100,_z).

'_x^3,_y^3,_z^3'(X,Y,Z) :-
        'x^n'(_z,3,Z),
        'x^n'(_x,3,X),
        'x^n'(_y,3,Y).

'x^n'(_,0,1) :- !.
'x^n'(_x,N,X) :-
        N_1 is N - 1,
        'x^n'(_x,N_1,X2),
        X is _x * X2.