| |
|
|
p.specht
|
'PrimTurbo in Assembler (C) by @Jonathan
'Eine Primzahlensuche, die abgeht wie sonstwas...
WindowStyle 1 | 8 | 16
cls
Declare Daten#, ZahlenAnzahl&, StartZeit&, JN$, PrimAnz&
'Erstellt mit dem XProfan Datengenerator, (C) Frank Abbing
Declare Code#
Dim Code#,164
Clear Code#
Long Code#,0=1397791846,1448563281,35048,-1959228672,12977264,21022208
Long Code#,24=37799424,54576640,71353856,88131072,104908288,121685504
Long Code#,48=16827904,16859334,441,-834977536,-796187532,311087363,1946286720
Long Code#,76=-1047834384,-487075445,-1957113717,-958790696,-788332285
Long Code#,96=-210315461,29087723,-1962934272,63013832,-150736757,225955387
Long Code#,120=-1048374902,16416770,-347868555,63474671,428425679,1499094878
Long Code#,144=-1654237093,321731,-854261760,-1957165221,49920
Print "Primzahlen finden bis: ";
Input ZahlenAnzahl&
Dim Daten#, ZahlenAnzahl& + 5
Long Daten#, 0 = ZahlenAnzahl&
Long Daten#, 4 = (Sqrt(ZahlenAnzahl&) + 1) \ 1
WhileLoop 0, @SizeOf(Code#) - 4
If @Long(Code#, &loop) = 123456789
Long Code#, &loop = Daten#
EndIf
EndWhile
Print "Primzahlen werden gesucht..."
StartZeit& = &gettickcount
@Call(Code#)
Dispose Code#
Print ""
Print "Benötigte Zeit: " + @Str$((&gettickcount - StartZeit&) / 1000) + " Sekunden."
Print "Gefundene Primzahlen: " + @Str$(@Long(Daten#, ZahlenAnzahl& + 1))
Print ""
' Statt Ausgabeteil adaptiert auf Darstellung einer Primel by P. Specht
' SetPixel ist leider immer noch verdammt langsam!
Print "Primzahlen als S-PRIMEL darstellen (J/N)? ";
Input JN$
If @Upper$(JN$) = "J"
declare x&,y&,c%,ri&,xx&,yy&,scale&
Window 0,0 - %maxx,%maxy-52
cls @rgb(207,207,207)
xx&=width(%hwnd)*3/5
yy&=height(%hwnd)*2/7
c%=rgb(255,0,0)
x&=0:y&=0:scale&=10' Maßstab 1 : scale&
WhileLoop 2, ZahlenAnzahl&
IfNot @Byte(Daten#, &loop)
setpixel xx&+x&/scale&,yy&+y&/scale&,c%
ri&=(ri&+1) mod 8
EndIf
Select ri&
caseof 0:inc x&
caseof 1:inc x&:dec y&
caseof 2:dec y&
caseof 3:dec x&:dec y&
caseof 4:dec x&
caseof 5:dec x&:inc y&
caseof 6:inc y&
caseof 7:inc x&:inc y&
endselect
inc c%
EndWhile
EndIf
Dispose Daten#
Print "\n Fertig! "
WaitInput
End
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 18.04.2021 ▲ |
|
|
|