このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1309076891/713
#  【 課題 】 
#  2012年 センター試験 プログラム 
#  http://ime.nu/www.toshin.com/center/sugaku-2b_mondai_6.html 
#  解答 
#  http://ime.nu/www.toshin.com/center/sugaku-2b_ans.html 
#   
#  このプログラムをjavaアプリケーションで記述して下さい。 
#   
#  【 形態 】1. Javaアプリケーション(main()で開始)  
#  【 GUI  】制限なし  
#  【 期限 】1/18 6:00まで  
#  【 Ver  】java version "1.6.0_21"  
# 
# 
#  与えられた二つの自然数M,Nについて,Mから始まるN個の連続した自然数の積M*(M+1)*(M+2)*...*(M+N-1)が8で割り切れるかどうか調べ、その結果を出力するプログラム

'与えられた二つの自然数M,Nについて,Mから始まるN個の連続した自然数の積M*(M+1)*(M+2)*...*(M+N-1)が8で割り切れるかどうか調べ、その結果を出力する'(M,N) :-
        Max is M + N - 1,
        'Mから始まるN個の連続した自然数の積M*(M+1)*(M+2)*...*(M+N-1)が8で割り切れるかどうか調べ'(M,Max,8,_診断),
        出力する(_診断).

'Mから始まるN個の連続した自然数の積M*(M+1)*(M+2)*...*(M+N-1)が8で割り切れるかどうか調べ'(Max,Max,_積,_診断) :-
        '8で割り切れるかどうかの診断'(_積,_診断),!.
'Mから始まるN個の連続した自然数の積M*(M+1)*(M+2)*...*(M+N-1)が8で割り切れるかどうか調べ'(M,Max,_積_1,_診断) :-
        _積_2 is _積_1 * (M + 1),
        M2 is M + 1,
        'Mから始まるN個の連続した自然数の積M*(M+1)*(M+2)*...*(M+N-1)が8で割り切れるかどうか調べ'(M2,Max,_積_2,_診断).

'8で割り切れるかどうかの診断'(_積,ます) :-
        0 is _積 mod 8.
'8で割り切れるかどうかの診断'(_積,ません) :-
        \+(0 is _積 mod 8).

出力する(_文字列) :-
        writef('8で割り切れ%t。\n',[_診断]).