PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Algorithmus


desperado2000
2004-11-13, 18:35:43
Hi

Suche einen guten leicht verständlichen Algorhythmus der Perfekte Zahlen sucht.
Kann man mir helfen?

beta3
2004-11-13, 20:11:58
Hi

Suche einen guten leicht verständlichen Algorhythmus der Perfekte Zahlen sucht.
Kann man mir helfen?

was bitte sind "Perfekte Zahlen" :confused:

Rationale oder irrationale Zahlen? (das waere eine leicht zu beantwortende Fragen)
R, N, oder Ganzzahlen?
Brueche?

Xmas
2004-11-13, 20:28:32
Perfekte Zahlen sind Zahlen deren Teilersumme das Doppelte der Zahl ergeben.

Und Algorithmus hat nichts mit Rhythmus zu tun. Leider habe ich einen solchen gerade nicht.

Aqualon
2004-11-13, 21:41:44
int grenze = 10000;

for (int zahl = 1; zahl <= grenze; zahl++) {
int teilersumme = 0;
for (int i = 1; i <= zahl/2; i++) {
if (zahl % i == 0)
teilersumme += i;
}
if (zahl == teilersumme) {
System.out.println(zahl);
}
}


Der Code ist in Java und nicht gerade performant. Die ersten 4 perfekten Zahlen 6, 28, 496 und 8128 lassen sich noch relativ schnell finden. Danach wird es eine ziemliche Geduldsprobe ;)

Man kommt auch ziemlich schnell über den maximalen int-Wert hinaus, insofern ist der Algorithmus sehr verbesserungswürdig.

Wäre aber eine nette Idee für nen kleinen Programmierwettstreit, wer den schnellsten Algorithmus für das Problem entwickelt.

Aqua

Edit: Man muss ja nur bis zahl/2 hochzählen, da danach kein Teiler mehr kommen kann.

desperado2000
2004-11-13, 22:30:12
Mein Nachhilfelehrer möchte das mit der Wurzel der Ausgangszahl lösen.
Ich hab aber nicht so recht verstanden wieso ddas ganze.
Das ist aber wohl der schnellste aller Algorithmen.
Kennt ihr noch welche?
Danke Aqualon für deinen Algo

HellHorse
2004-11-15, 09:00:43
http://en.wikipedia.org/wiki/Perfect_numbers

desperado2000
2004-11-15, 14:14:06
Danke dir werd heute versuchen das in ein Java Prog zu verwirklichen.