このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1309076891/573
#  【 課題 】自然数nの全ての約数の和sを求めよ。 
#   sに初め0をいれておく。nを順に1,2,・・・nで割っていき、割り切れるときは 
#  約数なのでその値を加えてゆけばよい。 
#  【 用語 】なし 
#  【 期限 】12月8日 
#  【 Ver  】特に無し 
#  【 補足 】 
#  int n = Integer.parseInt(JOptionPane.showInputDialog 
#      (null,"自然数nの値を入力してください")); 
#    int s =0;  
#        for(int i =2; i<=n; i++){ 
#           if(n % i == 0){ 
#           s = s + i; 
#           } 
#        else if(i == n){ 
#        JOptionPane.showMessageDialog(null, s); 
#       break; 
#        } 
#        } 
#   }  
#   } 
#      起動しても何も起こりません・・・ 
#  よろしくお願いします。 
# 
# 

'自然数nの全ての約数の和sを求めよ'(_n,_s) :-
        'sに初め0をいれておく。nを順に1,2,・・・nで割っていき、割り切れるときは約数なのでその値を加えてゆけばよい'(_n,_s).

'sに初め0をいれておく。nを順に1,2,・・・nで割っていき、割り切れるときは約数なのでその値を加えてゆけばよい'(_対象値,_合計値) :-
        findsum(N,(
                    値を割り切れる除数(_対象値,N)),
                _合計値).

値を割り切れる除数(_対象値,_除数) :-
        for(1,_除数,_対象値),
        0 is _対象値 mod _除数.