Alle Herausforderungen
Einfach 0 gelöst 0% Erfolgsquote

Klassifiziere eine Zahl anhand ihrer Teiler

Klassifiziere eine positive ganze Zahl als vollkommen, überschüssig oder mangelhaft.

Addiere die positiven Teiler von n, die strikt kleiner als n sind. Ist ihre Summe gleich n, ist die Zahl vollkommen. Ist die Summe größer, ist sie überschüssig; ist sie kleiner, ist sie mangelhaft. Die Zahl 1 hat keine echten positiven Teiler, daher ist ihre Teilersumme 0.

Implementiere perfect_number(n).

Eingabe

n: Die zu klassifizierende positive ganze Zahl.

Ausgabe

Gib perfect, abundant oder deficient als Kleinbuchstaben zurück.

Einschränkungen

1 ≤ n ≤ 1.000.000. Null und negative Werte sind ausgeschlossen.

Beispiele

Beispiel 1
Eingabe:
n = 18

Erwartete Ausgabe:
expected = "abundant"
Eingabe:
long long n = 18;

Erwartete Ausgabe:
std::string expected = "abundant";
Eingabe:
long n = 18;

Erwartete Ausgabe:
string expected = "abundant";

Erläuterung

Die echten Teiler sind 1, 2, 3, 6 und 9. Ihre Summe ist 21, was größer als 18 ist.

Beispiel 2
Eingabe:
n = 28

Erwartete Ausgabe:
expected = "perfect"
Eingabe:
long long n = 28;

Erwartete Ausgabe:
std::string expected = "perfect";
Eingabe:
long n = 28;

Erwartete Ausgabe:
string expected = "perfect";

Erläuterung

Die echten Teiler ergeben 1 + 2 + 4 + 7 + 14 = 28, genau die Zahl selbst.

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.