Samstag, 29. Dezember 2012

Harshad- bzw. Niven-Zahlen

Es gibt hier auf Programmieraufgaben.ch eine Aufgabe zu Harshad- oder auch Niven-Zahlen. das sind natürliche Zahlen, die durch ihre Quersumme, „das heißt die Summe ihrer Ziffern (im Dezimalsystem), teilbar sind“ (Quelle). Hierbei sollen für alle natürlichen Zahlen bis n getestet werden, ob es sich um eine Harshad-Zahl handelt.
def harshad_zahl_testen(i):
    ''' Testet die natuerliche Zahl dahingehend,
    ob es sich um eine Harshad-Zahl handelt. Das ist dann
    der Fall, wenn die Zahl natuerlich und durch
    ihre Quersumme teilbar ist.
    '''
    if i != 0 and i % 1 == 0 and i % sum([int(a) for a in str(i)]) == 0:
        return True
    else:
        return False


def main():
    # Mainschleife
    for i in range(0,1000):
        if harshad_zahl_testen(i) == True:
            print(i,end=", ")


if __name__ == "__main__":
    main()
Das Skript scheint zu funktionieren.

Keine Kommentare:

Kommentar veröffentlichen