Español
Fuente/ Codesnippets

Natürliche Pagar en ihre Primfaktoren zerlegen

 

p.specht

Jede beliebige natürliche Zahl lässt se en Primzahl-Faktoren zerlegen. Diese Tatsache es Mathematikern bajo el de Gauss geprägten Begriff "Fundamentalsatz el Arithmetik" bekannt. Je größer el Zahl, en así quadratisch-überproportional zeitaufwändig se esta Zerlegung aber, porque bisher wurde kein auch para riesige Ganzzahlen funktionierender rascher Faktorisierungsalgorithmus bekannt. Exactamente deshalb puede ser así wirksam Noticias verschlüsseln, porque sólo derjenige, el el Primfaktoren bekannt gegeben voluntad (z.B. uno de zwei großen Faktoren plus una öffentlicher Schlüssel), el kann el Botschaft en vernünftiger Tiempo otra vez entschlüsseln. En no allzu großen Pagar es una Zerlegung sin embargo en corto Tiempo posible, como el nachstehende en XProfan-11 übersetzte Progrämmchen beweist.

Nachsatz: Selbst heutige Supercomputer oder incluso Quantencomputer schaffen una Zerlegung wirklich großer Pagar no en militärisch interessanter Tiempo (Wenn el Schlacht vorbei es, ha nämlich niemand mehr qué su). Aunque debería wir el Findigkeit el Crypto-Experten no unterschätzen: Alguien ha z.B. antes einiger Tiempo una derartigen Code geknackt, en el él ihn como DNA-Strang synthetisierte. Anschließend wurde dieser billionenfach geklont (heute kein Problema mehr, dauert ca. 19 Stunden) y schließlich por Einsatz verschiedener Enzyme, el große Primzahlen kodieren 8O y se a el Strang anlagern, el fehlende Zahl herausgefiltert - somit el Code geknackt!

Título de la ventana upper$("Faktorisierung de natürlichen Zahlen")
' *******************************************
'* Sample run:                               *
'* ? 394616                                  *
'*     2 2 2 107 461                         *
'* ----------------------------------------- *
'* Ref.: "Mathématiques par l'informatique   *
'*        individuelle (1) par H. Lehning    *
'*        et D. Jakubowicz, Masson, Paris,   *
'*        1982"                                   *
'* ----------------------------------------- *
'*               C++ version by J-P Moreau.  *
'*                    (www.jpmoreau.fr)      *
'*   XProfan Versión by P.Pájaro carpintero, Wien (AT)  *
'*     Ohne Gewähr! No warranty whatsoever!  *
'* ----------------------------------------- ********
'* Gegenprüfungsmöglichkeit:                         *
'* https://de.numberworld.info/faktorisierungsRechner *
' ***************************************************
set("decimals",0):windowStyle 24:font 2
Declarar d!,eps!,m!,n!,i!:eps!=0.000001
start:
Cls:imprimir
rept:
'imprimir " Integer number to be factorized ?: ";:input n!
imprimir " Integerzahl, el en Primfaktoren zerlegt voluntad se ?: ";:input n!
caso n!<0:End
caso n!=0:n!=4294967295

if n!>4294967295:imprimir " *** Overflow Error ***\n" : goto "rept":endif

    imprimir "   ";
    e50:
    d!=n!-2*intf(n!/2)

    if (abs(d!)<eps!): imprimir "2 ";: n!=n!/2: goto "e50":endif

        e100:
        d!=n!-3*intf(n!/3)

        if abs(d!)<eps!:imprimir "3 ";: n!=n!/3: goto "e100":endif

            ' // All Prime numbers >3 are of the form 6i-1 or 6i+1
            m!=floor(sqrt(n!))+1
            i!=6

            mientras que i!<(m!+1)

                e150:
                d!=n!-(i!-1)*intf(n!/(i!-1))

                if (abs(d!)<eps!) :imprimir i!-1,: n!=n!/(i!-1): goto "e150":endif

                    e200:
                    d!=n!-(i!+1)*intf(n!/(i!+1))

                    if (abs(d!)<eps!):imprimir i!+1,: n!=n!/(i!+1): goto "e200":endif

                        i!=i!+6

                    endwhile

                    caso (n!>1):imprimir n!,
                    imprimir

                    if %csrlin>32:waitinput :goto "start":endif

                        goto "rept"
                        FIN
                        '===================== Math2.inc ==========================================

                        proc Sgn :parámetros x!:volver (x!>0)-(x!<0):ENDPROC

                            proc floor :parámetros x!:caso abs(x!)<(10^-35):volver 0:caso x!>0

                                volver intf(x!):volver (abs(x!-intf(x!)) < 10^-35)-intf(abs(x!-1)):ENDPROC

                                proc ceil :parámetros x!:volver -1*floor(-1*x!):ENDPROC

                                    proc modf :parámetros x!,y!:caso abs(x!)<10^-35:volver 0

                                        caso abs(y!)<10^-35:volver x!:volver sgn(y!)*abs(x!-y!*floor(x!/y!)):ENDPROC

                                        proc remn :parámetros x!,y!:caso abs(x!)<(10^-35):volver 0

                                            caso abs(y!)<(10^-35):volver x!:volver sgn(x!)*abs(x!-y!*floor(x!/y!)):ENDPROC

                                            proc IsNeg :parámetros x!:volver byte(Addr(x!),7)&%10000000>>7:ENDPROC

                                                proc frac :parámetros x!:var s!=sgn(x!):x!=abs(x!):x!=x!-round(x!,0)

                                                    caso x!<0:x!=1+x!:volver s!*x!:ENDPROC

                                                    proc intf :parámetros x!:var s!=sgn(x!):x!=abs(x!):x!=x!-frac(x!):volver s!*x!

                                                    ENDPROC

                                                    '============================================================================
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
16.05.2021  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.488 Views

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie