Python :: Aufgabe #227
5 Lösungen

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ß!
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:

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)

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)

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()

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)

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()