Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1840 | Besucher online: 270
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

"echte" Teiler Summe berechnen


Autor: Till-H
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 9974
  
Kick it on dotnet-kicks.de  

Beschreibung:

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.


Abgelegt unter: Teiler, Teilersumme, echte Teiler, Summe, Mathe.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// <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()
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

herbivore schrieb am:  30.01.2007 18:44:51

In der Tat ist das noch nicht perfekt. :-) Berechne mal die Teilersumme von -12.
Till-H schrieb am:  30.01.2007 22:21:51

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 13:49:58

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 17:38:42

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;
}


Diese Snippets könnten für Sie interessant sein:
[C#] Integers
[VB.NET] Größter gemeinsamer Teiler
[VB.NET] Primfaktorzerlegung
[VB.NET] Größter gemeinsamer Teiler (2)
[VB.NET] Kleinster natürlicher Teiler > 1
[C#] Summe 1..n berechnen
[C#] Summe 1²...n² berechnen.
[C#] Summe 1³..n³ berechnen.
[C#] Fibonacci-Folge (Konsole)
[C#] LINQ kumulierte Summe
[C#] Fibonacci-Folge berechnen
[C#] n-te Fibonaccizahl rekursiv berechnen
[C#] größten gemeinsamen Teiler berechnen.
[VB.NET] Multiplikation von übergroßen Zahlen
[C#] Dreiecksberechnung
[VB.NET] PI nach der Bailey-Borwein-Plouffe-Formel berechnen
[VB.NET] Quadratische Gleichung mit der PQ Formel lösen
[VB.NET] Basisrechenfunktionen für einen Kreis
[C++] Exponents
[C#] Quersummenberechnung
[C#] Geodaten in sexagesimal Format umrechnen
[VB.NET] Größten gemeinsamen Teiler berechnen
[VB.NET] Quadratwurzel ohne Sqrt() Funktion ziehen
[C#] Addiere alle ganzen Zahlen von x bis y
[C++] Caesar
[C#] Formelevaluierung aus RPN Form
[C#] Prüfung auf narzisstische Zahlen
[C#] CellMatrix
[C#] Maschinengenauigkeit
[C#] Flächenberechnungen am Kreis,Quadrat,Parallelogramm,Trapez
[C#] Bruch-Klasse
[VB.NET] einfacher rekursiver Mathe Parser
[VB.NET] Permutation nachweisen
[VB.NET] Das Sieb des Eratosthenes
[VB.NET] Modulare Exponentation
[VB.NET] Fibonacci-Folge iterativ erzeugen
[VB.NET] Das Sieb von Atkin
[VB.NET] Das Sieb von Atkin (2)
[VB.NET] Werte zweier Variablen tauschen
[VB.NET] Ganzzahlige Wurzel
[VB.NET] Binäre Exponentation
[VB.NET] Binomialkoeffizient
[VB.NET] Das Sieb von Atkin (2) - aktuell
[VB.NET] Dezimalzahl in Zahl der Basis b < 37 konvertieren

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.