Einzelnen Beitrag anzeigen
Alt 07.05.2005, 11:23   #2
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

Die "Standardmethode" um das Sieb des Erathostenes zu implementieren ist ein großes Array aus einsen, in dem man die Vielfachen auf 0 setzt (oder umgekehrt). Nachdem der Standardwert eines boolean AFAIK false ist, ist es sinnvolle die gestrichenen auf true zu setzen:
Code:
Dim sieb() As Boolean
Dim max As Integer 'wenn du größere Zahlen als 32.767 berechnen willst nimm halt double
max=1000 'Nur Primzahlen < 1000 berechnen
For i=1 to max
  Dim j As Integer
  j=2*i
  Do
   sieb(j)=false
   j=j+i
  Loop while (j<max/2)
next i
For i=1 to max
 if sieb(i) then
  'Zahl ist primzahl
 else
  'Zahl ist keine Primzahl
 end if
Next i
Sollte funktionieren, muß aber nicht (habe z.B. keine Ahnung wie VB Arrays behandelt)...

Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten