| |
|
|
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 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 16.05.2021 ▲ |
|
|
|