| |
|
|
p.specht
| Bitte no verwechseln con el allgemeinen Faktoren- o. Kofaktoren-Ermittlung aller Teiler un número: Hier voluntad sólo Primzahlen extrahiert!
Título de la ventana "Primfaktorisierung y Primtest con el Wheel-Methode"
'Q: https://en.wikipedia.org/wiki/Wheel_factorization
Cls:font 2:appendmenubar 100,"Zahl < 2147483647 , 0 = Test, -1 = Ende"
declarar v&,factors&[],k&,i&,en$,n&,plus&[8],check!
'Init: Das siempre gleiche Rad para una 3él-Wheel:
plus&[1]=4:plus&[2]=2:plus&[3]=4:plus&[4]=2
plus&[5]=4:plus&[6]=6:plus&[7]=2:plus&[8]=6
Repeat
Eingabe:
imprimir " Zahl = ";:input en$
if val(en$)>2147483647:cls:goto "Eingabe":endif
n&=val(en$):caso n&=-1:End
caso n&=0:n&=223092870
FactorWheel(abs(n&))
ShowOutput
until 0
Proc FactorWheel :parámetros n&
clear factors&[]:caso n&<1:volver:declarar k&,i&,v&
' Ejemplo 3él-Wheel:
:whilenot n& mod 2:inc v&:factors&[v&]=2:n&=n&\2:Endwhile
:whilenot n& mod 3:inc v&:factors&[v&]=3:n&=n&\3:Endwhile
:whilenot n& mod 5:inc v&:factors&[v&]=5:n&=n&\5:Endwhile
k&=7:i&=1
mientras que sqr(k&)<=n&
ifnot n& mod k&:inc v&:factors&[v&]=k&:n&=n&\k&
más:k&=k&+plus&[i&]:if i&<8:inc i&:más:i&=1:endif
endif
Endwhile: inc v&:factors&[v&]=n&
ENDPROC
Proc ShowOutput :caso n&<1:volver:imprimir " ";n&;" = ";
var s&=sizeof(factors&[])-1:s&=s&-(factors&[s&]=1)
Whileloop s&:imprimir factors&[&Loop];
caso &Loop<s&:imprimir " ";chr$(215);" ";
caso %pos>54:imprimir "\n ";
endwhile : caso factors&[s&]=n&:imprimir " (prim!)";
if %csrlin>20:waitinput:cls:endif:imprimir
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 30.05.2021 ▲ |
|
|
|