Deutsch
Quelltexte/ Codesnippets

Berechnen Primzahl

 

Jac
de
Lad
Folgender von mir entwickelter und meiner Meinung nach recht effektiver Code berechnet in Parcival die Primzahlen (hier die profanisierte Variante):
KompilierenMarkierenSeparieren
proc Primzahl

    Parameters z&
    declare f&,n&,x%,y%

    if z&>0

        Select z&

            CaseOf 3,2,7,5

            Return 1

            CaseOf 1

            Return 0
            Otherwise
            casenot z& MOD 2:Return 0
            f&=1
            n&=Int(Sqrt(z&))
            Inc x%

            while (f&<n&) & x%

                Inc f&,2
                casenot z& MOD f&:Dec x%
                y%=Not(y%)

            endwhile

            Return x%

        EndSelect

    else

        Return -1 Ungültige Zahl

    endif

endproc


Kennt jemand einen besseren, effektiveren Code?

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
16.06.2008  
 



https://www.mathematik.de/mde/information/landkarte/zahlen/primzahlen.html
Wie kann man systematisch alle Primzahlen finden?

Das bekannteste Verfahren ist das Sieb des Eratosthenes, benannt nach dem griechischen Mathematiker Eratosthenes von Kyrene, der im dritten vorchristlichen Jahrhundert lebte.
Hier sein Vorschlag, um alle Primzahlen zu finden:

Schreibe die natürlichen Zahlen, beginnend mit 2, hintereinander hin:
2, 3, 4, 5, 6, 7, 8, 9, ...
Streiche alle echten Vielfachen von 2, also 4, 6, ...:
2, 3, 4, 5, 6, 7, 8, 9, ...
Streiche alle echten Vielfachen von 3, also 6, 9, ... (die 6 ist schon in der ersten Runde ausgeschieden): 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...

Und so weiter: Als nächstes werden die Vielfachen von 5 gestrichen, dann die von 7 usw. Genauer: Im k-ten Durchgang streiche die Vielfachen der k-ten Zahl, die bis dahin noch ,,überlebt hat; das ist dann die k-te Primzahl.

Die Begründung für den Erfolg des Verfahrens ist leicht: Jede Nicht-Primzahl n hat einen echten Primteiler p, und damit wird n bei der zu p gehörigen Streichungsrunde gestrichen.
 
16.06.2008  
 




Jac
de
Lad
Nein, mir gehts darum, ob eine Zahl z& eine Primzahl ist. Die Funktion sollte also eher IsPrim heißen.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
16.06.2008  
 



https://www.hackerboard.de/thread.php?threadid=4852

KompilierenMarkierenSeparieren
int isprimzahl(int value)

{

    int tempo = 0;
    int testa = 0;

    if (value == 0)

        return -1;
        for(tempo = 2; tempo < value; tempo++)

        {

            testa = value % tempo;

            if ( (testa == 0) && (tempo != value) && (tempo != 1))

                return 0;

            }

            return 1;

        }



Mach mal nach XProfan...
 
16.06.2008  
 




Jac
de
Lad
Was ist der Unterschied zwischen != und ==?
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
16.06.2008  
 



!= ist ungleich (<>), == ist gleich (=)

Lol ich sehe grad man müsste nur eine Zeile ändern und XPSE würde daraus XProfan machen muhhaa...
 
16.06.2008  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.417 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang01.11.2024
p.specht17.10.2018
Jörg Sellmeyer18.05.2018
Michael W.27.03.2016
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

iF (3x)
Jac de Lad (3x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie