3 Stimmen

Anfänger - Vielfache von 3 und 5 addieren

Ich versuche, die Summe aller positiven Vielfachen von 3 und 5 unter 1000 zu finden. Nach dem Hinzufügen des Teils, der die Vielfachen von 3 aus der Summe der Vielfachen von 5 entfernen soll, spuckt gprolog weiterhin "Nein" für die Abfrage aus ?- sigma(1000,N).

Das Problem liegt offenbar in Sigma5, aber ich kann es nicht genau erkennen:

sigma(Num, Result) :- sigma3(Num, 3, Result3),
                      sigma5(Num, 5, Result5),
                      Result is Result3 + Result5.

sigma3(Num, A, Result) :- A < Num,
                          Ax is A+3,
                          sigma3(Num, Ax, ResultX),
                          Result is ResultX + A.
sigma3(Num, A, Result) :- A >= Num,
                          Result is 0.

sigma5(Num, A, Result) :- A < Num,
                          mod3 is A mod 3,
                          0 \= mod3,
                          Ax is A+5,
                          sigma5(Num, Ax, ResultX),
                          Result is ResultX + A.
sigma5(Num, A, Result) :- A < Num,
                          mod3 is A mod 3,
                          0 == mod3,
                          Ax is A+5,
                          sigma5(Num, Ax, ResultX),
                          Result is ResultX.
sigma5(Num, A, Result) :- A >= Num,
                          Result is 0.

Was ist das Problem mit meinem Code?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X