このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/425
#  [1]C言語 プログラミング 
#  [2]http://ime.nu/codepad.org/UrZpvr24 
#  制御構造について。 
#  文字制限のためコードでお願いします。 
#  [3]Windows 7 
#  [3.1]vs2010 
#  [3.2]C言語 
#  [4]明日 午前中まで 
#  [5]現在制御構造について学んでいます。 
#  配列・ポインタ・関数はまだです。 
# 
#  /*問題1
#  n>=m>=2を満たす整数nとmをキーボードから入力するとm進数でnを出力するプログラムを
#  作成せよ。ただしm<=10としていい。表示は逆順でも良い。
#  
#  問題2
#  2<=n<=10000を満たす整数nをキーボードから入力すると2以上n以下の素数とその個数を表示する
#  プログラムを作成せよ。ただし最後の行に素数の個数のみを表示しその他の各行には
#  最後の一行を除いてちょうど10個の素数を表示しなければならない。
#  例:n=50
#  2 3 5 7 11 13 17 19 23 29
#  31 37 41 43 47
#  15
#  
#  問題3
#  絶対値が1未満の実数xと正の整数nが入力されるまで繰り返してキーボードからxとnを入力し
#  xとnが正しく入力されたら関数log(1+x)の近似値を次の式で計算して表示するプログラム。
#  
#  log(x+1)=nΣi=1     (-1)^i+1 / i      のx^i   
#  
#  例:n=100 x=0.5とすると0.405465と表示される。*/

'n>=m>=2を満たす整数nとmをキーボードから入力するとm進数でnを出力する' :-
        'n>=m>=2を満たす整数nとmをキーボードから入力すると'(_n,_m),
        'm進数でnを出力する'(_n,_m).

'n>=m>=2を満たす整数nとmをキーボードから入力すると'(_n,_m) :-
        整数を得る(m進数のm,_m >= 2,_m),
        整数を得る(整数n,_n >= _m,_n).

'm進数でnを出力する'(_n,_m) :-
        m進数でnを(_n,_m,_m進数文字列),
        writef('%t\n',[_m進数文字列]).

m進数でnを(_n,_m,_m進数文字列) :-
        m進数(_n,_m,[],_m進数文字ならび),
        atomic_list_concat(_m進数文字ならび,_m進数文字列).

m進数(0,_,L,L) :- !.
m進数(_n,_m,L1,_m進数文字ならび) :-
        _n_1 is _n mod _m,
        _n_2 is _n // _m,
        m進数文字変換(_n_1,A),
        m進数(_n,_m,[A|L1],_m進数文字ならび).

m進数文字変換(_n_1,A) :-
        _n_1 < 10,
        atom_number(A,_n_1),!.
m進数文字変換(_n_1,A) :-
        _文字コード is _n_1 + 55,
        char_code(A,_文字コード).