| |
|
|
p.specht
| s'il te plaît pas verwechseln avec qui allgemeinen Faktoren- bzw. Kofaktoren-Ermittlung aller Teiler einer numéro: ici volonté seulement Primzahlen extrahiert!
Titre de la fenêtre "Primfaktorisierung et Primtest avec qui Wheel-Methode"
'Q: https://en.wikipedia.org/wiki/Wheel_factorization
Cls:font 2:appendmenubar 100,"Payer < 2147483647 , 0 = Test, -1 = Ende"
declare v&,factors&[],k&,i&,dans$,n&,plus&[8],check!
'Init: cela toujours gleiche roue pour un 3il-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:
imprimer " numéro = ";:input dans$
si val(dans$)>2147483647:cls:goto "Eingabe":endif
n&=val(dans$):cas n&=-1:Fin
cas n&=0:n&=223092870
FactorWheel(abs(n&))
ShowOutput
until 0
Proc FactorWheel :parameters n&
clear factors&[]:cas n&<1:return:declare k&,i&,v&
' Beispiel 3il-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
tandis que sqr(k&)<=n&
ifnot n& mod k&:inc v&:factors&[v&]=k&:n&=n&\k&
d'autre:k&=k&+plus&[i&]:si i&<8:inc i&:d'autre:i&=1:endif
endif
Endwhile: inc v&:factors&[v&]=n&
ENDPROC
Proc ShowOutput :cas n&<1:return:imprimer " ";n&;" = ";
var s&=sizeof(factors&[])-1:s&=s&-(factors&[s&]=1)
Whileloop s&:imprimer factors&[&Boucle];
cas &Boucle<s&:imprimer " ";chr$(215);" ";
cas %pos>54:imprimer "\n ";
endwhile : cas factors&[s&]=n&:imprimer " (prim!)";
si %csrlin>20:waitinput:cls:endif:imprimer
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 30.05.2021 ▲ |
|
|
|