Italia
Fonte/ 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 per 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;

        r=#0000FF>}



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


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

8.395 Views

Untitledvor 0 min.
Uwe Lang vor 24 Tagen
p.specht17.10.2018
Jörg Sellmeyer18.05.2018
Michael W.27.03.2016
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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