C++ :: Aufgabe #299

1 Lösung Lösung öffentlich

Teilersumme natürlicher Zahlen

Anfänger - C++ von JKooP - 04.10.2020 um 11:49 Uhr
Schreibe eine Methode/Funktion, mit der es möglich ist zu prüfen, ob es sich bei einer natürlichen Zahl um eine defiziente,
vollkommende oder abundante Zahl handelt.
Betrachtet wird die Summe aller Teiler ohne die Zahl selbst.

Beispiel Zahl 80:

1 + 2 + 4 + 5 + 8 + 10 + 20 + 40 = 106 --> abundant, da

Summe kleiner als Zahl --> defizient
Summe gleich Zahl --> vollkommen
Summe größer als Zahl --> abundant

Viel Spaß

Lösungen:

vote_ok
von Concado (110 Punkte) - 26.10.2020 um 11:40 Uhr
Quellcode ausblenden C-Code
#include <iostream>

int main() {
    int a;
    int teiler_sum = 0;

    std::cin >> a;
    for(int i = a; i > 1; i--)
        teiler_sum += a % i == 0 ? a / i : 0;

    std::cout << teiler_sum;

    if(teiler_sum > a)
        std::cout << " ist abundant" << std::endl;
    else if(teiler_sum == a)
        std::cout << " ist vollkommen" << std::endl;
    else
        std::cout << " ist defizient" << std::endl;

    std::cin.get();
}