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
