Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 15:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



hilfe mit "auflistung"

Discussion on hilfe mit "auflistung" within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
hilfe mit "auflistung"

also ich hab mal vor einen "primzahlen zerleger" zu schreiben, und habe folgendes start-problem...


ich habe primzahlen zahlen... zb

"2,3,5,7"

dann will ich eine beliebige zahl (ausm Input) solange mit der "2" dividiren, solange es eine eine "ganze" zahl als lösung kommt,
andersnfalls (mit komma) soll weiter mit der "3" machen, wenns nicht geht, "5"... dann wieder "2" usw...

bsp.
(ausm imput die zahl 60)
60 / 2 = 30
30 / 2 = 15
15 / 2 = 12.5
15 / 3 = 5

nur weiß ich jetz nicht, wie ich das so einrichten kann, dass es alle primzahlen nacheinander nimmt...

müsste ichs in ne .ini speichern und von da aus zeile für zeile nehmen?
wie würde es dann da aussehen?

zum testen obs ne ganze zahl ist mach ichs ja hiermit oder?
If IsInt(variable)...


MfG
omer36 is offline  
Old 09/17/2010, 15:44   #2
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by omer36 View Post
also ich hab mal vor einen "primzahlen zerleger" zu schreiben, und habe folgendes start-problem...


ich habe primzahlen zahlen... zb

"2,3,5,7"

dann will ich eine beliebige zahl (ausm Input) solange mit der "2" dividiren, solange es eine eine "ganze" zahl als lösung kommt,
andersnfalls (mit komma) soll weiter mit der "3" machen, wenns nicht geht, "5"... dann wieder "2" usw...

bsp.
(ausm imput die zahl 60)
60 / 2 = 30
30 / 2 = 15
15 / 2 = 12.5
15 / 3 = 5

nur weiß ich jetz nicht, wie ich das so einrichten kann, dass es alle primzahlen nacheinander nimmt...

müsste ichs in ne .ini speichern und von da aus zeile für zeile nehmen?
wie würde es dann da aussehen?

zum testen obs ne ganze zahl ist mach ichs ja hiermit oder?
If IsInt(variable)...


MfG
versteh zwar nicht wirklich was das soll, da das ergebnis so immer 1 sein wird, aber hier mal ein beispiel:
Code:
Dim $prim[30] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]
$input = InputBox('Enter Number', 'Enter a number >= 1', 10)
For $i=0 To UBound($prim)-1
	Do
		$input_old = $input
		$input /= $prim[$i]
		ConsoleWrite($input_old&@CRLF)
	Until Not IsInt($input)
	$input = $input_old
	If $input = 1 Then ExitLoop
	ConsoleWrite('teilen durch '&$prim[$i]&' failed'&@CRLF)
Next
lolkop is offline  
Thanks
1 User
Old 09/17/2010, 16:31   #3
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Quote:
Originally Posted by omer36 View Post
also ich hab mal vor einen "primzahlen zerleger" zu schreiben, und habe folgendes start-problem...


ich habe primzahlen zahlen... zb

"2,3,5,7"

dann will ich eine beliebige zahl (ausm Input) solange mit der "2" dividiren, solange es eine eine "ganze" zahl als lösung kommt,
andersnfalls (mit komma) soll weiter mit der "3" machen, wenns nicht geht, "5"... dann wieder "2" usw...

bsp.
(ausm imput die zahl 60)
60 / 2 = 30
30 / 2 = 15
15 / 2 = 12.5
15 / 3 = 5

nur weiß ich jetz nicht, wie ich das so einrichten kann, dass es alle primzahlen nacheinander nimmt...

müsste ichs in ne .ini speichern und von da aus zeile für zeile nehmen?
wie würde es dann da aussehen?

zum testen obs ne ganze zahl ist mach ichs ja hiermit oder?
If IsInt(variable)...


MfG
Mit den ersten 30 Primzahlen kannst du aber bei weitem nicht alle Zahlen zerlegen. Am besten du rechnest die Primzahlen im Script direkt aus, so bist du nicht auf die ersten 30 beschränkt. Hier ein algo der das kann.
Dass mit den von 2 anfangen kannst du dir im Grunde auch schenken, das würde in einer endlosschleife enden, da die letze Zahl selbst eine Primnzahl ist und somit nur durch sich selbst oder 1 teilbar wäre.

Aber hier das Script mit den neustart , vielleicht etwas "leserlicher" als lolkop seins :

Code:
Dim $prim[30] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]
$input = InputBox('Enter Number', 'Enter a number >= 1', 10)

$i = 0

While $input <> 1
	
	if IsInt($input/$prim[$i]) Then
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"TRUE"&@CRLF)
		$input = $input/$prim[$i]
	Else
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"FALSE"&@CRLF)
		If $i < UBound($prim)-1 Then
			$i = $i+1
		Else
			$i = 0
		EndIf
	EndIf
WEnd
und hier korrekt wies sein sollte, ohne Neustart. Jedoch terminiert das Script, gezwungenermaßen, nachdem die ersten 30 Primzahlen durch sind:

Code:
Dim $prim[30] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]
$input = InputBox('Enter Number', 'Enter a number >= 1', 10)

$i = 0

While $input <> 1
	
	if IsInt($input/$prim[$i]) Then
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"TRUE"&@CRLF)
		$input = $input/$prim[$i]
	Else
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"FALSE"&@CRLF)
		$i = $i+1
	EndIf
WEnd
hoffe hab nichts vergessen.
| Moep | is offline  
Thanks
1 User
Old 09/17/2010, 17:16   #4
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
schonmal danke euch beiden, ist fasst so, wie ichs wollte...
(eig. wollte ichs ja selber "versuchen" zu scripten, aber...hätte ich wohl nicht so geschaft....^^)

vllt könnt ihr noch bei einer sache helfen...

so siehts bisher aus:

PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"531190308255)
$Label1 GUICtrlCreateLabel("Bitte geben Sie die Zahl ein"121224717)
$input GUICtrlCreateInput(""123613721)
$edit GUICtrlCreateEdit(""2728257181)
$ok GUICtrlCreateButton("OK"127211329$WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Dim $prim[30] = [2357111317192329313741434753596167717379838997101103107109113]

While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$ok
            start
()

    EndSwitch
WEnd

Func start
()
$input GUICtrlRead($input)
$i 0
While $input <> 1
    
if IsInt($input/$prim[$i]) Then
        GUICtrlSetData
($edit,  GUICtrlRead($edit) & @CRLF $input&" / "&$prim[$i]&" = "&@CRLF&$input/$prim[$i]&@CRLF)
        
$input $input/$prim[$i]
    Else
        
GUICtrlSetData($edit,  GUICtrlRead($edit))
        
$i $i+1
    
EndIf
WEnd
EndFunc 
und ist es jetz noch möglich, am ende die primzahlen hinzu zufügen?
sprich, wenn ich 60 eingebe, dasss es so kommt:

Code:
60 / 2 = 
30

30 / 2 = 
15

15 / 3 = 
5

5 / 5 = 
1

[B]2 * 2 * 3 * 5[/B]
omer36 is offline  
Old 09/17/2010, 17:42   #5
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 531, 190, 308, 255)
$Label1 = GUICtrlCreateLabel("Bitte geben Sie die Zahl ein", 12, 12, 247, 17)
$GUIinput = GUICtrlCreateInput("", 12, 36, 137, 21)
$edit = GUICtrlCreateEdit("", 272, 8, 257, 181)
$ok = GUICtrlCreateButton("OK", 12, 72, 113, 29, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Dim $prim[30] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $ok
            start()

    EndSwitch
WEnd

Func start()
$input = GUICtrlRead($GUIinput)
$i = 0
$fak = $input&" = 1"
While $input <> 1
    if IsInt($input/$prim[$i]) Then
        GUICtrlSetData($edit,  GUICtrlRead($edit) & @CRLF & $input&" / "&$prim[$i]&" = "&@CRLF&$input/$prim[$i]&@CRLF)
		$fak = $fak&" * "&$prim[$i]
        $input = $input/$prim[$i]
    Else
        
        $i = $i+1
    EndIf
WEnd
GUICtrlSetData($edit,  GUICtrlRead($edit)&$fak & @CRLF &"======================================")
EndFunc

Wie gesagt, dass Script bricht bei höheren Zahlen ab, da die benötigten Primzahlen zur berechnung nicht in den array bereitgestellt sind. Du solltest dir am besten die Primzahlen zu Laufzeit des Scriptes direkt ausrechnen, oder eine Begrenzung einbauen.

Edit: Außerdem war noch nen Bug drinne, wenn du zweimal hintereinander eine Zahl suchst. is gefixt.
| Moep | is offline  
Thanks
1 User
Old 09/17/2010, 18:07   #6
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by | Moep | View Post
Code:
Dim $prim[30] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]
$input = InputBox('Enter Number', 'Enter a number >= 1', 10)

$i = 0

While $input <> 1
	
	if IsInt($input/$prim[$i]) Then
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"TRUE"&@CRLF)
		$input = $input/$prim[$i]
	Else
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"FALSE"&@CRLF)
		$i = $i+1
	EndIf
WEnd
öhm du hast statt einer in diesem fall besseren for schleife eine while schleife genommen, was anstatt in einer endlosschleife zu landen, beim nicht auffinden einer passenden primzahl zu einem array overflow führen wird.

es ist zwingen notwendig die schleife nur von 0-29 laufen zu lassen, da sonst $prim[29+] abgefragt wird, was nicht existiert. und aus effizienzgründen ist eine for schleife auch immer eine while schleife vorzuiziehen :P
lolkop is offline  
Thanks
1 User
Old 09/17/2010, 18:20   #7
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Quote:
Originally Posted by lolkop View Post
öhm du hast statt einer in diesem fall besseren for schleife eine while schleife genommen, was anstatt in einer endlosschleife zu landen, beim nicht auffinden einer passenden primzahl zu einem array overflow führen wird.

es ist zwingen notwendig die schleife nur von 0-29 laufen zu lassen, da sonst $prim[29+] abgefragt wird, was nicht existiert. und aus effizienzgründen ist eine for schleife auch immer eine while schleife vorzuiziehen :P
Darauf hab ich gewartet. Und deine komische for...next do...until combo ist jetzt nach eingehenden tests von unabhängigen instituten die effektivste aller Lösungen?!

Außerdem hab ich ihn darauf hingewiesen dass das Script abbricht, man könnte um das zu umgehen einfach folgendes einbauen.

Code:
Dim $prim[30] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]
$input = InputBox('Enter Number', 'Enter a number >= 1', 10)

$i = 0

While $input <> 1 [COLOR="Red"]And  $i <> UBound($prim)[/COLOR]
	
	if IsInt($input/$prim[$i]) Then
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"TRUE"&@CRLF)
		$input = $input/$prim[$i]
	Else
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"FALSE"&@CRLF)
		$i = $i+1
	EndIf
WEnd
| Moep | is offline  
Thanks
1 User
Old 09/17/2010, 18:40   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by | Moep | View Post
Darauf hab ich gewartet. Und deine komische for...next do...until combo ist jetzt nach eingehenden tests von unabhängigen instituten die effektivste aller Lösungen?!

Außerdem hab ich ihn darauf hingewiesen dass das Script abbricht, man könnte um das zu umgehen einfach folgendes einbauen.

Code:
Dim $prim[30] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]
$input = InputBox('Enter Number', 'Enter a number >= 1', 10)

$i = 0

While $input <> 1 [COLOR="Red"]And  $i <> UBound($prim)[/COLOR]
	
	if IsInt($input/$prim[$i]) Then
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"TRUE"&@CRLF)
		$input = $input/$prim[$i]
	Else
		ConsoleWrite($input&" / "&$prim[$i]&" = "&$input/$prim[$i]&@TAB&"FALSE"&@CRLF)
		$i = $i+1
	EndIf
WEnd
man kann man die effizienz von schleifen einfach durch ein tool testen:
dann erhält man auch vergleichszeiten, gegen die du jetz hoffentlich nichtmehr argumentieren wirst...
Code:
zeitaufwand durch direktes setzen: 88.125068968263ms
zeitaufwand durch For schleife: 105.610629283889ms
zeitaufwand durch While schleife: 221.581793216736ms
zeitaufwand durch Do schleife: 217.137094239631ms
um das ganze noch etwas deutlicher zu machen, kann man auch die for schleifen von 1-500 laufen lassen und erhält:
Code:
zeitaufwand durch direktes setzen: 1558.94142970685ms
zeitaufwand durch For schleife: 2349.61678090372ms
zeitaufwand durch While schleife: 4791.73023387051ms
zeitaufwand durch Do schleife: 4690.06843048488ms
aber auch mit reiner logik sollte klar sein das do until schleifen in diesem falle besser sind, da nach abschluss der aktion direkt ermittelt wird, ob weiter gemacht werden muss. bei der while schleife wird nocheinmal zu start gesprungen, und im falle der fertigen aktion hinter das ende gesprungen.

warum jetzt schleifen allgemein so inneffizient sind gegen über dem direkten setzen kann ich leider nicht sagen. das wurde von autoit leider schlecht umgesetzt, da eig for, do und direktes setzen genau gleiche zeiten haben müssten, da selber asm code...
lolkop is offline  
Thanks
1 User
Old 09/17/2010, 19:15   #9
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Quote:
Originally Posted by lolkop View Post
erstens würde das immernoch zum fehler führen, da ubound die anzahl der elemente zurück gibt, was bei 0-29 leider 30 entspricht.. und auch element 30 existiert nicht.
Wenn du dir die Bedingung richtig angesehen hättest, dann wäre dir vielleicht auch aufgefallen dass die Schleife solange läuft bis $i ungleich 30 ist, also von 0-29.
Außerdem denke ich das mein Code doch bei weitem leserlicher ist als deiner, mag sein das deiner einen geschwindigkeitsvorteil hat. Jedoch stellt sich die Frage ob dem TS ein code der 100ms schneller oder einer der nachvollziehbar geschrieben ist, lieber ist.
| Moep | is offline  
Thanks
1 User
Old 09/17/2010, 19:43   #10
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
was sind den schon 100ms...

ich würde lieber einen script haben, wo ich auch durchblicke...
und nicht einfach kopiere und es abhacke...

es geht, und das zählt.. ^^

nochmal danke an euch beiden.
omer36 is offline  
Thanks
1 User
Old 09/17/2010, 21:53   #11
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by | Moep | View Post
Wenn du dir die Bedingung richtig angesehen hättest, dann wäre dir vielleicht auch aufgefallen dass die Schleife solange läuft bis $i ungleich 30 ist, also von 0-29.
da hast du natürlich recht =). habe das leider erst nach dem posten bemerkt und das auch direkt danach wieder gelöscht.

Quote:
Originally Posted by | Moep | View Post
Außerdem denke ich das mein Code doch bei weitem leserlicher ist als deiner, mag sein das deiner einen geschwindigkeitsvorteil hat. Jedoch stellt sich die Frage ob dem TS ein code der 100ms schneller oder einer der nachvollziehbar geschrieben ist, lieber ist.
über leserlichkeit will ich jetzt hier nicht streiten, aber zu dem effizienzvergleich kann ich nur sagen, das es sich halt nicht um 100ms handelt, sondern um doppelten aufwand und daraus resuliterende halbe geschwindigkeit.

mag sein das das manche leute nicht interessiert, ich würde aber beim schreiben von programmen immer effizienz an erste stelle setzen. und auch wenn du das vielleicht so verstanden hast, ich wollte dich damit ja nicht runter machen... wollte lediglich anmerken, dass das ganze auch deutlich effizienter geht.

gerade bei komplexen aufgaben wie diesen, macht das bei großen mengen an primzahlen schon einen deutlichen unterschied. und wie du schon selbst sagtest, mit diesen 30 primzahlen bekommt man bei weitem nicht alle zahlen aufgeteilt =)

habe die 30 zahlen auch nur aus übernommen. wenn man in das array alle zahlen einfügt, hat man im endeffekt mehrere sekunden geschwindigkeits unterschied.

wie dem auch sei ihr müsst immer für euch wissen, was für euch das wichtigste ist =)
lolkop is offline  
Thanks
1 User
Old 09/17/2010, 22:28   #12
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
ihr habt beide recht und punkt!

ich persönlich habe keine probleme wenn ich 1sec. mehr warten muss.....
ist bei jedem anders...

mein kleiner couseng hatt grad in der schule mit den primzahlen angefangen und da dachte ich mir, ich versuch mal so ein programm zu schreiben, und es ihm zu schicken,
(darum wollte ich auch soweit wie möglich den lösungsweg mit schreiben lassen..)

aber sowas ist wohl (noch) zu schwer für mich...
darum fand ich jetz | Moep | ´s source "besser", indem sinne, weil ichs da besser sehen konnte, was was sein soll...
weil ich nicht einfach kopieren und abspeichern will, sondern auch lernen wie das gehen soll...

aber nochmal danke an euch. ^^

MfG

€achja.. hab etwas über 600primzahlen hinzugefügt ^^
müsste wohl inetwa reichen..
omer36 is offline  
Old 09/18/2010, 11:11   #13
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Quote:
Originally Posted by omer36 View Post
€achja.. hab etwas über 600primzahlen hinzugefügt ^^
müsste wohl inetwa reichen..
Huh... Is ja nen ganzer Haufen Primzahlen geworden. Wie lange braucht da mein Script für? Ich will jetzt keinen neuen Vergleich antreten, es interresiert mich nur

@lolkop, Kennst du den Spruch "Make It Work Make It Right Make It Fast" von KentBeck. Natürlich ist es von enormen Vorteil bei einer komplexen Berechnung einen leistungsfähigen Algo zur Hand zu haben, das möchte ich nicht Bestreiten. Jedoch stellt sich auch die Frage nch Aufwand und Nutzen. Vielleicht kommt ja der TS irgendwann mal in die Versuchung Zahlen im breich jenseits der 32bit zu berechnen. Dann würde ich ihm auch dringend zu einem anderen algo raten

Btw. wäre in dem Fall nicht ein rekursiver funktionsaufruf der performanteste?! Das Problem bei höheren Zahlen wäre dann wohl nur der überlaufende Stack...
| Moep | is offline  
Old 09/18/2010, 11:18   #14
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
ich hatte vorher natürlich gegooglt bevor ichs hier gefragt habe und hatte aus nen anderen forum nen script gefunden, der "19562" primzahlen in eine .ini abgespeichert und nummeriert hatt... hab dann einfach die ersten 600+ genommen ^^

€um es genauer zu sagen, habe ich 644 primzahlen genommen, weil mehr in eine zeile nicht rein passen und eine fehlermeldung kommt
und die müssten ja wohl erstmal reichen... ^^
omer36 is offline  
Old 09/18/2010, 11:48   #15
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
LeechTime..
Interresant wie das Problem hier geöst wurde :

Code:
ConsoleWrite( _GetPrimeFactors(123456) & @CRLF)

Func _GetPrimeFactors($n)
    Local $F = ObjCreate("System.Collections.ArrayList")
    While Mod($n,2) == 0
        $F.add(2)
        $n = $n/2
    WEnd
    While Mod($n,3) == 0
        $F.add(3)
        $n = $n/3
    WEnd
    Local $t = 5
    Local $diff = 2
    While $t*$t <= $n
        While Mod($n,$t) == 0
            $F.add($t)
            $n = $n/$t
        WEnd
        $t = $t + $diff
        $diff = 6 - $diff
    WEnd
    If $n > 1 Then $F.add($n)
    Local $out = ''
    For $element In $F
        $out &= $element & ','
    Next
    Return StringTrimRight($out, 1)
EndFunc
Hier sieht man wie die Primzahlen z.B. auch generiert werden könnten.

Code:
MsgBox("","",GetPrim(10000))

Func GetPrim($MaxZ, $Delim = ' ')
    If ($MaxZ < 2) Then Return 0
    If ($MaxZ = 3) Then Return 2
    Dim $Flag[$MaxZ + 1], $Prim = 2 & $Delim
    For $i = 1 To $MaxZ Step 2
        $Flag[$i] = 1
    Next
    For $i = 3 To $MaxZ Step 2
        If ($Flag[$i]) Then
            For $e = ($i ^ 2) To $MaxZ Step $i
                $Flag[$e] = 0
            Next
            $Prim &= $i & $Delim
        EndIf
    Next
    Return $Prim
EndFunc   ;==>GetPrim
| Moep | is offline  
Reply


Similar Threads Similar Threads
Flyff P-Server "Job's" Frage/Auflistung
11/06/2010 - Flyff Private Server - 28 Replies
Hallo liebe Comunity, Ich wollte mal eine Liste der P-Server Jobs machen und Auflisten welche Programme sie brauchen ich bitte euch das was Frei ist " K.A "zu ergänzen.: Also im Klartext: Ich wollte wissen Welche Programme die "Arbeiter" eines P-Servers haben z.b Der Mapper braucht BWE (Beast World Editor) Admin Programm:Serverfiles/GM-Tool Aufgabe:Server und alle Accs verwalten & am Anfang serverfiles einrichten GM Programm: GM-Tool
Kann mir bitte jemmand eine Hmachi HP erstellen """""SOS HELP""""
09/15/2010 - Metin2 Private Server - 11 Replies
SO wie der Titel schon sagt ich suche einen der mir per Teamviwer eine hp machen kann habe schon alles ausprobiert aber es klappt nie!!!! PLS HELP...



All times are GMT +1. The time now is 15:35.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.