このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/345
#  [1]計算機基礎実習 
#  [2]問題文:http://ime.nu/codepad.org/dCFDDyhz  
#   上記の「各桁の値の合計」を求めるプログラミングを 
#   用いて、3の倍数を判定する再帰プログラムを作りなさい。 
#  [3.1]Linux  
#  [3.2]gcc  
#  [3.3]C言語  
#  [4]10月25日 木曜日まで 
#  よろしくお願いします。  
# 
# 
#  #include
#  
#  int keta(int a);     //与えられた桁数を全て足して返す関数
#  
#  int main(){
#       int a;
#  
#       printf("数を入力して下さい:");
#       scanf("%d",&a);
#  
#       printf("\n%dの桁数を足すと%dです.\n",a,keta(a));
#       return(0);
#  }
#  
#  int keta(int a){
#        if(a < 10)return(a);
#        return a % 10 + keta(a / 10);
#  }


'「各桁の値の合計」を用いて、3の倍数を非再帰的に判定する'(_正の整数) :-
        number_chars(_正の整数,_数字ならび),
        '「各桁の値の合計」を用いて、3の倍数を判定する'(_数字ならび).

'「各桁の値の合計」を用いて、3の倍数を判定する'(_数字ならび) :-
        各桁の値の合計(_数字ならび,_各桁の値の合計),
        '3の倍数を判定する'(_各桁の値の合計).

各桁の値の合計(_数字ならび,_各桁の値の合計) :-
        findsum(_数値,(
                    member(_数字アトム,_数字ならび),
                    atom_number(_数字アトム,_数値)),
                _各桁の値の合計).

'3の倍数を判定する'(_各桁の値の合計) :-
        0 is _各桁の値の合計 mod 3.

%
%  非再帰版
%