# -*- coding: utf-8 -*-
""" Berechne alle vollkommenen Zahlen kleiner als Wert

Vollkommene Zahl ist eine Zahl n, wenn die Summe der
Teiler von n gerade gleich der Zahl n ist.
Bsp: 6 = 1*2*3 und 1+2+3 = 6

Die vollkommen Zahlen < 1000 sind: 6, 28, 496
"""

try:
    max_val = int(input("max-Value: "))
except ValueError:
    print("Bad Input, using 1000")
    max_val = 1000

# teste jede Ganzzahl im Interval [2, max_val]
for number in range(2, max_val+1):
    # die Summe aller Teiler ist zu Beginn 0
    total = 0
    # teste jeden möglichen Teiler
    for factor in range(1, number+1):
        # wenn factor ein Teiler der Test-Zahl ist:
        if (number % factor) == 0:
            # factor zur Summe hinzuzählen
            total += factor
    # wenn die Summe der gefunden Teiler der Test-Zahl entspricht:
    if total == number:
        # -> Test-Zahl ist eine vollkommene Zahl
        # gib Test-Zahl aus
        print(number)

