数X(Xを除く)のすべての除数を合計するPrologプログラムdivisor_sumを作成しようとしています。
acc_divisor_sum(X,_,X).
acc_divisor_sum(X,Y,C):- A=:=0, A is X mod N, C is N+1, Y is Y+C, acc_divisor_sum(X,Y,C).
acc_divisor_sum(X,Y,C):- A=\=0, A is X mod N, C is N+1, acc_divisor_sum(X,Y,C).
divisor_sum(X,Y):- acc_divisor_sum(X,Y,1).
私が得ているエラー。
?- divisor_sum(12,Y).
ERROR: =:=/2: Arguments are not sufficiently instantiated
^ Exception: (9) _L144=:=0 ? creep
Exception: (8) acc_divisor_sum(12, _G204, 1) ? creep
私のコードの何が問題になっていますか?ご協力いただきありがとうございます。