Probeteilen(Programme) < Analysis < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 21:22 Fr 10.12.2004 | Autor: | blubli89 |
Hallo ,
Vielleicht hat jemand praktische Erfahrung in dem Bereich .
Welche Art eine Zahl auf prim/nichtprim zu prüfen ist als Programm eigentlich die effektivste , die Teiler sollten auch bestimt werden .
1. Probeteilen durch alle natürlichen Zahlen
2. Probeteilen durch alle Primzahlen
3. Probeteilen durch alle 6n+-1(nachdem schon durch 2 und 3 geteilt wurde)
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:40 Fr 10.12.2004 | Autor: | wluut |
> Hallo ,
> Vielleicht hat jemand praktische Erfahrung in dem Bereich
> .
>
> Welche Art eine Zahl auf prim/nichtprim zu prüfen ist als
> Programm eigentlich die effektivste , die Teiler sollten
> auch bestimt werden .
>
> 1. Probeteilen durch alle natürlichen Zahlen
> 2. Probeteilen durch alle Primzahlen
> 3. Probeteilen durch alle 6n+-1(nachdem schon durch 2 und 3
> geteilt wurde)
>
Bei (1.) teilst Du ja ziemlich viele Zahlen unnötig, z.B. auch alle geraden Zahlen, obwohl die einzige gerade Zahl, die als Primfaktor in Frage kommt, die 2 ist.
Genau das nutzt Du ja auch mit (3.) schon aus, indem Du alle Zahlen, die durch 2 oder 3 teilbar sind überspringst. Also ist diese Lösung schon mal besser als (1.).
Auf den ersten Blick hört sich dann (2.) natürlich am besten an. Für eine Primfaktorzerlegung braucht man ja nur Primzahlen!
Das Problem ist, dass dein Programm nicht wissen kann, ob eine Zahl eine Primzahl ist, oder nicht. (Das willst Du ja gerade mit der Primfaktorzerlegung herausfinden!)
In der Tat haben sich schon viele schlaue Köpfe Gedanken darüber gemacht, wie man denn Primzahlen schnell ausrechnen kann. Google doch mal unter "Sieb des Eratosthenes".
Von den 3 Methoden ist sicher die 3. die beste (die 2. wäre natürlich perfekt, wenn man alle Primzahlen im Voraus kennen würde!)
Man braucht übrigens auch nur durch Zahlen zu teilen, die nicht größer als die Wurzel der untersuchten Zahl sind (z.B. kannst Du, um zu testen, ob 61 Primzahl ist oder nicht, bei 7 aufhören probezuteilen und musst nicht bis 61 weiter machen).
Jens
|
|
|
|