C# :: Aufgabe #264 :: Lösung #3
5 Lösungen

#264
Summe alle Teiler einer positven Ganzzahl
Anfänger - C#
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ß!
#3

von hollst (13980 Punkte)
- 02.08.2019 um 20:35 Uhr

using static System.Console; using System.Collections.Generic; namespace Aufgabe_264 { /* 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 */ static class Program { static void Main() { int nmax = 100; for (var i = 1; i <= nmax; i++) { int sum; int[] temp = i.result(out sum); Write($"anzahl teiler: {temp.Length, 3} i: {i,3} {sum,4} ["); for (var j = 0; j < temp.Length; j++) Write($"{temp[j],4}"); WriteLine("]"); } ReadKey(); } static int[] result(this int n, out int sum) { List<int> erg = new List<int>(); erg.Add(1); sum = 1; for (var i = 2; i <= n / 2; i++) if (n % i == 0) { sum += i; erg.Add(i); } if (n > 1) { erg.Add(n); sum += n; } return erg.ToArray(); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1