Python :: Aufgabe #227

5 Lösungen Lösungen öffentlich

Summe alle Teiler einer positven Ganzzahl

Anfänger - Python von hollst - 18.06.2019 um 20:49 Uhr
Man schreibe eine Funktion SIGMA(n) mit n > 0 und ganzzahlig, wobei der Funktionswert sich
aus der Summe aller ganzzahligen, positven Teiler von n ergibt.

Beispiele (Zahl; Teiler; Funktionswert);
1; 1; 1
2; 1, 2; 3
4; 1, 2, 4; 7
5; 1, 5; 6
...
12; 1, 2, 3, 4, 6, 12; 28
...
100; 1, 2, 4, 5, 10, 20, 25, 50, 100; 217

Für 0 < n <= 200 sollte sich der beigefügte Pinplot ergeben.

Viel Spaß!

Lösungen:

vote_ok
von jigga (3820 Punkte) - 23.06.2019 um 10:15 Uhr
Quellcode ausblenden Python-Code
def sigma(n):
	st = str(n) + "; "
	j = 0
	for i in range(1,n+1):
		if n%i == 0:
			st += str(i) + ", "
			j += i
	st = st[:-2] + "; " + str(j)
	print(st) 

for i in range(1,201):
	sigma(i)

vote_ok
von kamikatze (300 Punkte) - 03.07.2019 um 08:45 Uhr
Quellcode ausblenden Python-Code
def sigma(zahl):
    if zahl in range(1, 201) and type(zahl) == int:
        for a in range(1,zahl):
            teiler = [i for i in range(1,a + 1) if a%i == 0]
            _teiler = str(teiler).strip(("[, ]"))
            print("{} : {} - {} ".format(a,_teiler, sum(teiler)))
    else:
        print("Falsche Eingabe")

sigma(200)
vote_ok
von ZRX88 (2640 Punkte) - 07.07.2019 um 16:29 Uhr
Quellcode ausblenden Python-Code

import math
import matplotlib.pyplot as plt

defined_range = 200
def teiler(number): 
    x= 0
    for i in range(1,number+1):
        if number % i == 0:
            # print(i)
            x = x + i
    #print(x)
    return x

solution = [ teiler(i) for i in range(defined_range)]
i = [j for j in range(defined_range)]

plt.bar(i, solution)
plt.ylabel('some numbers')
plt.show()


vote_ok
von Mr.X (20 Punkte) - 06.10.2019 um 17:21 Uhr
Quellcode ausblenden Python-Code
def SIGMA(n):
#	Suche der Teiler von n
	teiler = ""
	for t in range(1,n+1):
		if n%t == 0:
			teiler += str(t)+", "
	
#	Ausgabe
	print(str(n) + "; " + teiler[0:-2] + "; " + str(len(teiler.split(", "))-1))
	
#Testen
for n in range(1,201):
	SIGMA(n)
vote_ok
von anna07 (20 Punkte) - 30.10.2019 um 08:40 Uhr
Quellcode ausblenden Python-Code
def show_sum():
    i = 1
    while i <= 200:
        j = 1
        sum = 0
        ausgabe = f"{i}; "
        while j <= i:
            if i % j == 0:
                ausgabe += f"{j}; "
                sum += j
            j += 1
        ausgabe += f"{sum}"
        print(ausgabe)
        i += 1


if __name__ == '__main__':
    show_sum()