Feedback

C# - "echte" Teiler Summe berechnen

Veröffentlicht von am 30.01.2007
(2 Bewertungen)
Das Programm durchsucht einen Integer und gibt die echte Teiler Summe zurück
(Echte Teiler sind alle, außer der Zahl selbst)
Es ist die beste Methode die mir eingefallen ist, denke jedoch nicht, dass sie perfekt ist.
Natürlich gilt das ganze nur für "Natürliche Zahlen", da man die Teilersummen nur von Natürliche Zahlen bestimmen kann.
GFU-Schulungen  [Anzeige]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

/// <summary>
/// Klasse gibt nach Übergabe eines Integer an "Teiler.Summe" die Summe
/// der echten Teiler aus.
/// </summary>
public class Teiler
{
	public int Summe(int zahl){
	int intSumme = 0;
	int intmax = 0;
		//Zahl wird bis zur Hälfte durchsucht
		for(int i = 1;i<(zahl/2);i++)
		{
		  if (zahl % i == 0)
			{
				if (zahl/i == intmax)
				{
					break; 
					//Abbruchkriterium, falls die Zahlen sich wiederholen
				}//of if
			intmax = i;
							intSumme = intSumme + i;
			intSumme = intSumme + zahl/i;
			}//of if

		}//of for
		intSumme = intSumme - zahl; 
		//Um Summe der Echten Teiler zu erhalten wird die Zahl von
		//der Teilersumme abgezogen			
		return intSumme;
	}//of Summe()
}
Abgelegt unter Teiler, Teilersumme, echte Teiler, Summe, Mathe.

4 Kommentare zum Snippet

herbivore schrieb am 30.01.2007:
In der Tat ist das noch nicht perfekt. :-) Berechne mal die Teilersumme von -12.
Till-H schrieb am 30.01.2007:
Ja..ok..hast recht.. es geht hier natürlich nur um positive Zahlen die eingesetzt werden können..
Till-H schrieb am 31.01.2007:
Kleine Anmerkung noch..Recherchen meinerseits ergaben, dass man Teilersummen nur von natürliche Zahlen bestimmen kann!
D.h. -12 ist keine Natürliche Zahl, da natürliche ja nur die Positiven sind. Von daher ist die Klasse in dem Punkt wohl perfekt ;)
Danke trotzdem für die Anmerkung
Klemens Nanni schrieb am 10.03.2010:
Man kann das ganze auch ein wenig simpler formulieren:
public int Teilersumme(int n)
{
    var s = n + 1;
   
    for (i = 2; i <= n / 2; i++) {
        if (n % i == 0) s += i;
    }
   
    return s;
}
 

Logge dich ein, um hier zu kommentieren!