kleiner graphischer Erathosthenes Sieb
[autoit]#include <GUIConstants.au3>
Global $width = 10, $height = 10, $blocked[101][101], $primzahl[101]
For $i = 1 To 100
For $j = 1 To 100
$blocked[$i][$j] = 0
Next
Next
For $i = 1 To 100
$primzahl[$i] = 0
Next
GUICreate("", 1000, 510)
GUISetState()
For $i = 2 To 50
_draw_label($i)
For $j = 1 To 100
If ($i * $j) > 100 Then ExitLoop
_draw_rect($i * $j, $i, "0x000000")
$blocked[$i * $j][$i] = 1
Next
Next
For $i = 2 To 100
For $j = 1 To 50
If $blocked[$i][$j] Then
If $primzahl[$j] Then
ExitLoop
Else
$primzahl[$j] = 1
_draw_line($i, $j, "0x0000FF")
ExitLoop
EndIf
Else
_draw_rect($i, $j, "0x666666")
EndIf
Next
Next
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
WEnd
Func _draw_rect($xpos, $ypos, $color)
GUICtrlCreateGraphic($xpos * $width, $ypos * $height, $width, $height)
GUICtrlSetBkColor(-1, $color)
GUICtrlSetColor(-1, 0)
EndFunc ;==>_draw_rect
Func _draw_line($xpos, $ypos, $color)
GUICtrlCreateGraphic(10, $ypos * $height, $xpos * $width - 10, $height)
GUICtrlSetBkColor(-1, $color)
GUICtrlSetColor(-1, 0)
EndFunc ;==>_draw_line
Func _draw_label($row)
GUICtrlCreateLabel($row, 0, $row * $height)
EndFunc ;==>_draw_label