Français
Source/ Codesnippets

Primfaktorenzerlegung qui payons 1 jusqu'à x, sowie einfacher Primtest

 

p.specht

Eingegebene numéro n sur Primzahl-qualité testen, sowie
payons de 1 jusqu'à x dans ses Primfaktoren décomposer et Ergebnis dans un Dossier "Primfaktoren.txt" am Desktop écrivons. Pour XProfan X3, X4 siehe entsprechendes Programme de Michael Wodrich!
Titre de la fenêtre "Prim & Co. Version pour XProfan-11.2 free"
CLS:AppendMenuBar 100,\
"  sur XProfan-11.2a zurückgequält 2016-08 de P.Specht,Wien; OHNE JEGLICHE GEWÄHR!"

Proc IsPrim :Paramètres n&' Feststellen einer Primzahl par Faktorenzerlegung

    Déclarer PFactor&[],prim&:PFactor&[]=PrimFac(n&):prim&=SizeOf(PFactor&[]):Retour (prim&=1)

ENDPROC

Proc PrimFac :Paramètres n&' Primfaktor-décomposition. Zeigt 2·2·3·..

    'Imprimer "PrimFac(123456)=";:WhileLoop 0,SizeOf(PFactor[])-1:Imprimer si(&loop=0,»,"·");PFactor[&loop];:Endwhile
    Déclarer PFac&[],cnt&,diff&,t&:cnt&=0:diff&=2:t&=5
    :Whilenot n& mod 2:PFac&[cnt&]=2:inc cnt&:n&=n& \2:Endwhile
    :Whilenot n& mod 3:PFac&[cnt&]=3:inc cnt&:n&=n& \3:Endwhile
    :Tandis que sqr(t&)<=n&:Whilenot n& mod t&:PFac&[cnt&]=t&:inc cnt&:n&=n& \t&:Endwhile
    t&=t&+diff&:diff&=6-diff&:Endwhile:Cas n&>1:PFac&[cnt&]=n&:Retour PFac&[]

ENDPROC

Proc findInX :Paramètres fac&:Var erg!=-1:Cas SizeOf(x&[])<1:Retour erg!

    :WhileLoop 0,SizeOf(x&[])-1:Si x&[&loop]=fac&:erg!=&loop:Pause:EndIf:Endwhile:Retour erg!

ENDPROC

Proc addInX :Paramètres fac&,fcnt&:Déclarer n&:n&=findInX(fac&)

    Si n&=-1:Inc cnt&:x&[cnt&]=fac&:xc&[cnt&]=fcnt&:D'autre :Cas xc&[n&]<fcnt&:xc&[n&]=fcnt&:EndIf

    ENDPROC

    Proc sum:var erg!=0

        Si SizeOf(x&[])>0:erg!=x&[0]^xc&[0]

            :WhileLoop 1,SizeOf(x&[])-1:erg!=erg!*x&[&loop]^xc&[&loop]:Endwhile
            EndIf:Retour erg!

        ENDPROC

        Proc pfc :Paramètres n&:Déclarer fac&,fcnt&,diff&,t&:diff&=2:t&=5:fac&=2:fcnt&=0

            :Whilenot n& mod 2:inc fcnt&:n&=n& \2:Endwhile:Cas fcnt&>0:addInX(2,fcnt&)
            fac&=3:fcnt&=0:Whilenot n& mod 3:inc fcnt&:n&=n& \3:Endwhile:Cas fcnt&>0:addInX(3,fcnt&)

            Tandis que sqr(t&)<=n&:fcnt&=0:Whilenot n& mod t&:inc fcnt&:n&=n& \t&:Endwhile

                Cas fcnt&>0:addInX(t&,fcnt&) : t&=t&+diff&:diff&=6-diff&
                Endwhile:Cas n&>1:addInX(n&,1)

            ENDPROC

            Proc kgV'Kleinstes gemeinsames Vielfaches. Erlaubt 2 jusqu'à 9 paramètre:

                '  Imprimer "kgV(12,8)=";format$("%d",kgV(12,8))
                '  Imprimer "kgV(62,36)=";format$("%d",kgV(62,36))
                Déclarer erg!,cnt&,x&[],xc&[]:cnt&=-1

                Select %PCount

                    CaseOf 9:Paramètres a9&,b9&,c9&,d9&,e9&,f9&,g9&,h9&,i9&

                    pfc a9&:pfc b9&:pfc c9&:pfc d9&:pfc e9&:pfc f9&:pfc g9&:pfc h9&:pfc i9&:Retour sum()

                    CaseOf 8:Paramètres a8&,b8&,c8&,d8&,e8&,f8&,g8&,h8&

                    pfc a8&:pfc b8&:pfc c8&:pfc d8&:pfc e8&:pfc f8&:pfc g8&:pfc h8&:Retour sum()

                    CaseOf 7:Paramètres a7&,b7&,c7&,d7&,e7&,f7&,g7&

                    pfc a7&: pfc b7&: pfc c7&: pfc d7&: pfc e7&: pfc f7&: pfc g7&:Retour sum()

                    CaseOf 6:Paramètres a6&,b6&,c6&,d6&,e6&,f6&

                    pfc a6&: pfc b6&: pfc c6&: pfc d6&: pfc e6&: pfc f6&:Retour sum()

                    CaseOf 5:Paramètres a5&,b5&,c5&,d5&,e5&:pfc a5&: pfc b5&: pfc c5&: pfc d5&: pfc e5&:Retour sum()

                    CaseOf 4:Paramètres a4&,b4&,c4&,d4&:pfc a4& : pfc b4& : pfc c4& : pfc d4&:Retour sum()

                    CaseOf 3:Paramètres a3&,b3&,c3&:pfc a3& : pfc b3& : pfc c3&:Retour sum()

                    CaseOf 2:Paramètres a2&,b2&:pfc a2&: pfc b2&:Retour sum()

                    EndSelect:Retour 0.0

                ENDPROC

                Proc ggT2 :Paramètres a&,b&' Größter gemeinsamer Teiler, 2 paramètre

                    Déclarer t& :si b&>a&:t&=a&:a&=b&:b&=t&:endif:Casenot b&:Retour a& : Retour ggT2(b&,a& mod b&)

                ENDPROC

                Proc ggT' Größter gemeinsamer Teiler. 1 jusqu'à 9 paramètre

                    Select %PCount

                        CaseOf 9:Paramètres a9&,b9&,c9&,d9&,e9&,f9&,g9&,h9&,i9&

                        Retour ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(a9&,b9&),c9&),d9&),e9&),f9&),g9&),h9&),i9&)

                        CaseOf 8:Paramètres a8&,b8&,c8&,d8&,e8&,f8&,g8&,h8&

                        Retour ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(a8&,b8&),c8&),d8&),e8&),f8&),g8&),h8&)

                        CaseOf 7:Paramètres a7&,b7&,c7&,d7&,e7&,f7&,g7&

                        Retour ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(a7&,b7&),c7&),d7&),e7&),f7&),g7&)

                        CaseOf 6:Paramètres a6&,b6&,c6&,d6&,e6&,f6&

                        Retour ggT2(ggT2(ggT2(ggT2(ggT2(a6&,b6&),c6&),d6&),e6&),f6&)

                        CaseOf 5:Paramètres a5&,b5&,c5&,d5&,e5&

                        Retour ggT2(ggT2(ggT2(ggT2(a5&,b5&),c5&),d5&),e5&)

                        CaseOf 4:Paramètres a4&,b4&,c4&,d4&:Retour ggT2(ggT2(ggT2(a4&,b4&),c4&),d4&)

                        CaseOf 3:Paramètres a3&,b3&,c3&:Retour ggT2(ggT2(a3&,b3&),c3&)

                        CaseOf 2:Paramètres a2&,b2&:Retour ggT2(a2&,b2&)

                        CaseOf 1:Paramètres a1&:Retour a1&

                        EndSelect:Retour 0

                    ENDPROC

                    Proc kgV_aus_ggT :var erg!=0

                        '' Statt Abstreich-Methode peux kgV aussi mittels "Summe par ggT" ermittelt volonté. Bsp.:
                        '  Imprimer "kgV_aus_ggT(53667,459486)=";format$("%d",kgV_aus_ggT(53667,459486))
                        '  Imprimer "kgV_aus_ggT(62,36)=";format$("%d",kgV_aus_ggT(62,36))

                        Select %PCount

                            CaseOf 9:Paramètres a9&,b9&,c9&,d9&,e9&,f9&,g9&,h9&,i9&

                            erg!=a9&*b9&*c9&*d9&*e9&*f9&*g9&*h9&*i9& / ggT(a9&,b9&,c9&,d9&,e9&,f9&,g9&,h9&,i9&)

                            CaseOf 8:Paramètres a8&,b8&,c8&,d8&,e8&,f8&,g8&,h8&

                            erg!=a8&*b8&*c8&*d8&*e8&*f8&*g8&*h8& / ggT(a8&,b8&,c8&,d8&,e8&,f8&,g8&,h8&)

                            CaseOf 7:Paramètres a7&,b7&,c7&,d7&,e7&,f7&,g7&

                            erg!=a7&*b7&*c7&*d7&*e7&*f7&*g7& / ggT(a7&,b7&,c7&,d7&,e7&,f7&,g7&)

                            CaseOf 6:Paramètres a6&,b6&,c6&,d6&,e6&,f6&

                            erg!=a6&*b6&*c6&*d6&*e6&*f6& / ggT(a6&,b6&,c6&,d6&,e6&,f6&)

                            CaseOf 5:Paramètres a5&,b5&,c5&,d5&,e5&:erg!=a5&*b5&*c5&*d5&*e5& / ggT(a5&,b5&,c5&,d5&,e5&)

                            CaseOf 4:Paramètres a4&,b4&,c4&,d4&:erg!=a4&*b4&*c4&*d4& / ggT(a4&,b4&,c4&,d4&)

                            CaseOf 3:Paramètres a3&,b3&,c3&:erg!=a3&*b3&*c3& / ggT(a3&,b3&,c3&)

                            CaseOf 2:Paramètres a2&,b2&:erg!=a2&*b2& / ggT(a2&,b2&)

                            CaseOf 1:Paramètres a1&:erg!=a1&

                            EndSelect:Retour erg!

                        ENDPROC

                        ' Hauptprogramm:
                        Imprimer "\n\n T E S T :"
                        declare x&,y&,i&,j&,e&,path$,limit&,limit$
                        declare PFactor&[]
                        imprimer "\n\n kgV(53667,459486)=";format$("%d",kgV(53667,459486))
                        imprimer " kgV_aus_ggt(53667,459486)=";format$("%d",kgV_aus_ggT(53667,459486))
                        imprimer " ----------------------------------------------------------------------"
                        x&=62 : y&=36 :imprimer "\n ggT2(";x&;»;y&;")=",ggT(x&,y&)
                        x&=1023 : y&=99 :imprimer " ggT2(";x&;»;y&;")=",ggT(x&,y&)
                        x&=1071 : y&=1029 :imprimer " ggT2(";x&;»;y&;")=",ggT(x&,y&)
                        imprimer " -------"
                        imprimer "\n ggT(1023,99,1071,1029)=",ggT(1023,99,1071,1029)
                        imprimer " ggT(15400,7875,3850)=",ggT(15400,7875,3850)
                        font 2:imprimer "\n ----------------------------------------------------------"
                        66EA1F72BEC94EAEA8A150F6BC904FA2:
                        Imprimer "\n sur PRIM trop testende numéro: ";:input limit$

                        si val(limit$)>(2^31-1):imprimer "Zu grand!":sound 800,100:goto "66EA1F72BEC94EAEA8A150F6BC904FA2":endif

                            limit&=val(limit$)
                            locate %csrlin-1,45:imprimer si(isPrim(limit&)," <<< ist PRIM!"," <<< ist pas prim.")
                            imprimer "\n ---------------------- [Start] ----------------------------"
                            Imprimer "\n Zerlegungen volonté dans Dossier dem Desktop geschrieben."
                            Imprimer "\n jusque quel Obergrenze devoir qui Faktoren ermittelt volonté? "
                            imprimer "\n Limit = ";:input limit&:imprimer
                            path$=getenv$("USERPROFILE")+"\DESKTOP\Primfaktoren.txt":e&=%IOResult
                            Assign #1,path$:e&=%IOResult
                            Rewrite #1:e&=%IOResult

                            si e&:Imprimer "Problem beim écrivons qui Dossier "+path$:waitinput:sound 1000,200:Fin:Endif

                                Imprimer  "\n données volonté soeben geschrieben pour: ";path$
                                cas limit&<=3000:Imprimer  "\n Primfaktoren (2.."+str$(limit&)+")"
                                Imprimer #1,"Datei qui Primfaktoren de 2 jusqu'à "+str$(limit&)
                                'WhileLoop 20000,limit&

                                WhileLoop 2,limit&

                                    cas limit&<=3000:Imprimer  "\n Faktoren(";&loop;"): ";
                                    Imprimer #1,"\n(";&loop;") ";
                                    PFactor&[]=PrimFac(&loop)
                                    i&=0 : j&=SizeOf(PFactor&[])

                                    Tandis que i&<j&

                                        cas limit&<=3000:Imprimer  » + si(i&=0,»,"·"); PFactor&[i&];
                                        Imprimer #1,» + si(i&=0,»,"·"); PFactor&[i&];
                                        Inc i&

                                    Endwhile

                                    Claire PFactor&[]
                                    cas limit&<=3000:Imprimer  »+si(IsPrim(&loop)," PRIM",»);
                                    Imprimer #1,»+si(IsPrim(&loop)," PRIM",»);

                                Endwhile

                                Imprimer #1,"\nEOF":e&=%IOResult
                                Fermer #1:e&=%IOResult
                                Imprimer  "\n données wurden geschrieben pour: ";path$:sound 2000,90
                                Imprimer "\n Ende":WaitInput:Fin
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
24.05.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.278 Views

Untitledvor 0 min.
Erhard Wirth14.06.2024
p.specht20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie