Python :: Aufgabe #67

9 Lösungen Lösungen öffentlich

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.

Lösungen:

vote_ok
von frfrey (370 Punkte) - 17.03.2015 um 15:19 Uhr
Quellcode ausblenden Python-Code
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"
vote_ok
von _Mala_Fide_ (820 Punkte) - 24.04.2015 um 11:29 Uhr
Quellcode ausblenden Python-Code
#!/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.

Quellcode ausblenden Python-Code
#!/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.

Quellcode ausblenden Python-Code
#!/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.
vote_ok
von jigga (4260 Punkte) - 18.05.2015 um 16:35 Uhr
Quellcode ausblenden Python-Code
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!")
vote_ok
von hak (980 Punkte) - 07.09.2016 um 23:20 Uhr
Quellcode ausblenden Python-Code
for i in range(1,100):
    i_q = sum([ int(x) for x in str(i) ])
    if i % i_q == 0:
        print(i)
vote_ok
von Nachbar (2820 Punkte) - 06.10.2016 um 19:02 Uhr
Quellcode ausblenden Python-Code
# -*- 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
vote_ok
von Y0uLyric (500 Punkte) - 10.12.2016 um 22:54 Uhr
Quellcode ausblenden Python-Code
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)
vote_ok
von 0 (0 Punkte) - 02.10.2017 um 20:38 Uhr
Quellcode ausblenden Python-Code
#Harshard
for i in range(1,100):
    z=i//10
    z=z+i-z*10
    if not i%z:
        print(i)
vote_ok
von tebarius (470 Punkte) - 31.08.2018 um 18:10 Uhr
Quellcode ausblenden Python-Code
#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()
vote_ok
von BibiByteBerg (20 Punkte) - 10.03.2020 um 00:01 Uhr
Quellcode ausblenden Python-Code
# 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
2098001

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.