Python :: Aufgabe #67
9 Lösungen

Alle Harshad-Zahlen von 1 bis 100 berechnen
Anfänger - Python
von Gustl
- 13.02.2015 um 12:35 Uhr
Eine natürliche Zahl heißt Harshad-Zahl, wenn Sie durch ihre Quersummer teilbar ist.
Beispiel: 777 ist durch 7 + 7 + 7 = 21 teilbar und ist damit eine Harshad-Zahl.
Schreibe ein Programm welches alle Harshad-Zahlen von 1 bis 100 berechnet und am Bildschirm ausgibt.
Beispiel: 777 ist durch 7 + 7 + 7 = 21 teilbar und ist damit eine Harshad-Zahl.
Schreibe ein Programm welches alle Harshad-Zahlen von 1 bis 100 berechnet und am Bildschirm ausgibt.
Lösungen:

z= range(1,101,1) #erzeugen einer Liste mit den Zahlen 1 bis 100 def quersumme(z): n=str(z) #Umwandlung der Zahl in ein String number=range(len(n)) #ertellen einer Liste für die die einzelnen Werte der Zahl for i in number: #einzelne Werte in Liste schreiben und wieder in Ganzzahlen umwandeln number[i]=n[i] number[i]=int(number[i]) qs=sum(number) #Quersumme der Zahl bilden return qs #Rückgabe der Quersumme def harsh(z,qs): #bestimmen ob Harschadzahl oder nicht if z%qs==0: return True else: return False for i in z: if harsh(i,quersumme(i)): print i, #Ausgabe aller Zahlen, für die der Wahrheitswert für Harschadzahl "wahr"

#!/usr/bin/python for zahl in range(1, 100+1): length_zahl = len(str(zahl)) index_zahl = 0 quersumme = 0 while index_zahl < length_zahl: quersumme += int(str(zahl)[index_zahl]) index_zahl += 1 if int(zahl) % quersumme == 0: print "Die Zahl", zahl, "ist eine Harshad-Zahl."
Eine Version von 1-100.

#!/usr/bin/python eingabe_start = input("Gib an ab welcher Zahl ueberprueft werden soll:\t\t") eingabe_ende = str(input("Gib an bis zu welcher Zahl ueberprueft werden soll:\t")) for zahl in range(eingabe_start, int(eingabe_ende)+1): length_zahl = len(str(zahl)) index_zahl = 0 quersumme = 0 while index_zahl < length_zahl: quersumme += int(str(zahl)[index_zahl]) index_zahl += 1 if int(zahl) % quersumme == 0: print "Die Zahl", zahl, "ist eine Harshad-Zahl."
Eine Version bei der, der Startwert und der Endwert selber festgelegt werden kann.

#!/usr/bin/python eingabe = str(input("Gib die zu ueberpruefende Zahl ein:\t")) length_zahl = len(eingabe) index_zahl = 0 quersumme = 0 while index_zahl < length_zahl: quersumme += int(eingabe[index_zahl]) index_zahl += 1 if int(eingabe) % quersumme == 0: print "Die Zahl", eingabe, "ist eine Harshad-Zahl." else: print "Die Zahl", eingabe, "ist keine Harshad-Zahl."
Eine Version die eine beliebige Zahl überprüft.

liste = [] def harschad(z): for i in range(1,zahl): einser = i%10 zehner = int(i/10)%10 hunderter = int(i/100)%10 k = int(i/1000)%10 zehnk = int(i/10000)%10 hundertk = int(i/100000)%10 quersumme = einser+zehner+hunderter+k+zehnk+hundertk if i % quersumme == 0: liste.append(i) z = input("Bitte Obergrenze eingeben (kleiner 1000000): ") zahl = int(z) if zahl >=1 and zahl < 1000000: print() harschad(zahl) print(liste) else: print("Falsche Eingabe!")

for i in range(1,100): i_q = sum([ int(x) for x in str(i) ]) if i % i_q == 0: print(i)

# -*- coding: utf-8 -*- quersumme = 0 for i in range (1, 101): int_to_string = str(i) for j in int_to_string: quersumme = quersumme + int(j) if i % quersumme == 0: print str(i) + " ist eine Harshad Zahl." quersumme = 0

def teilen_durch_quersumme(x): if len(str(x)) == 2: zahl1 = str(x)[:1] zahl2 = str(x)[1:] ergebnis = int(zahl1) + int(zahl2) if x % ergebnis == 0: print(str(x)) elif len(str(x)) == 3: zahl1 = str(x)[:1] zahl2 = str(x)[1:2] zahl3 = str(x)[2:] ergebnis = int(zahl1) + int(zahl2) + int(zahl3) if x % ergebnis == 0: print(str(x)) else: None for x in range(1, 101): teilen_durch_quersumme(x)

#Harshard for i in range(1,100): z=i//10 z=z+i-z*10 if not i%z: print(i)

#Python3.7 def quersumme(z): qs=0 for i in str(z): qs=qs+int(i) return qs for j in range(1,101): if j%quersumme(j)==0: print(j,end=" ") print()

# Eine natürliche Zahl heißt Harshad-Zahl, wenn Sie durch ihre Quersummer teilbar ist. # Beispiel: 777 ist durch 7 + 7 + 7 = 21 teilbar und ist damit eine Harshad-Zahl. # Gebe alle von 1 - 100 aus for number in range(1, 100): harshad = [] number = str(number) for i in range(len(number)): harshad.append(number[i]) dividend = 0 for i in harshad: dividend += int(i) number = int(number) result = number / dividend if number %dividend == 0: print(number) else: continue