Hallo,
ich habe ein Programm geschrieben, dass Befreundete Zahlen errechnet..
Befreundete Zahlen:
Die Echte Teilersumme der Zahl A ist die Zahl B und die Echte Teilersumme der Zahl B ist die Zahl A.
Guckt es euch einfach an..😉
using System;
namespace Befreundete_Zahlen1
{
/// <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()
}
}
Klasse, die die Teilersumme berechnet.
using System;
namespace Befreundete_Zahlen1
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
[STAThread]
static void Main(string[] args)
{
int intAnzahl = 110000;
int[] TeilerArray = new int[intAnzahl+1];
Teiler Teiler = new Teiler();
// ENDE DER DEKLARATION
for(int i = 1;i<=intAnzahl;i++)
{
TeilerArray[i]=Teiler.Summe(i);
//TeilerArray wird mit Teilersummen gefüllt
//ArrayPos --> Teilersumme
}//of for
for(int i = 1;i<=intAnzahl;i++)
{
if(TeilerArray[i] < intAnzahl & TeilerArray[i] > 0)
{
if(i == TeilerArray[TeilerArray[i]] & TeilerArray[i] != i)
{
Console.WriteLine("Befreundete Zahlen {0} und {1}",i,TeilerArray[i]);
TeilerArray[i]=0;
//Befreundete Zahlen werden gesucht. Eine der beiden Zahlen wird
//auf 0 gesetzt um Doppelfunde zu vermeiden
}//of if(innen)
}//of if(außen)
}//of for
Console.WriteLine("Fertig!");
Console.ReadLine();
}//of Main
}
}
Hauptmethode zum Suchen der Zahlen.
Die .exe im Anhang benötigt einige Zeit(ca 1Minute) um ein Ergebnis zu finden
Hallo Till-H,
kleine Ergänzung bzw. Hintergrundinfo: http://de.wikipedia.org/wiki/Befreundete_Zahl
herbivore
Hallo herbivore,
ja..hab ich auch schon gesehen.. aber wollte es einfach mal so ohne diese Sätze programmieren..
trotzdem danke 🙂