WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Primzahlensieb und Realisierung (http://www.wcm.at/forum/showthread.php?t=165316)

coolbininet 07.05.2005 10:57

Primzahlensieb und Realisierung
 
Hallo Leute!

Möchte gerne ein Primzahlensieb in VB schreiben. Mein Gedanke ist der, dass ich eine Möglichkeit (Zahlengenerator) baue, der immer nur Zahlen ausgibt, die nur durch sich selbst und durch 1 zu dividieren ist (es bleibt kein Rest bei der Division). Es muss sich um die Reihe der natürlichen Zahlen handeln und größer als 1 und 2 sein. Nach dieser kurzen Erklärung frage ich, kann mir jemand helfen ein Progrämmchen danach zu schreiben?

Lg

Coolbininet

jak 07.05.2005 11:23

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

pong 07.05.2005 11:53

http://de.wikipedia.org/wiki/Primzahltest

als Test einfach die 2er Division, Milla-Rabin und Fermat

Die Zahl nimmst einfach als dynamisches Array an, dann hast auch keine Probleme mit der Größenbeschränkung

pong

coolbininet 07.05.2005 12:21

Was ist ein dynamisches Array und wie behandle ich dass programmiertechnisch?

Grüsse Coolbininet

Blaues U-boot 07.05.2005 12:43

so hab schnell dieses programm geschrieben
berechnet die primzahlen bis 1M
viel spaß

pong 07.05.2005 13:43

Zitat:

Original geschrieben von coolbininet
Was ist ein dynamisches Array und wie behandle ich dass programmiertechnisch?

Grüsse Coolbininet

in C und Cobol wäre das kein Problem dies zu beantworten, aber vor VB graust es mir, somit bin ich dahingehend weiter in Berührung gekommen, als ich es musste

@Blaues U-boot darf ich bemerken, dass es mir vor deinem Code ekelt?

pong

Blaues U-boot 08.05.2005 16:42

doppelpost
(kleinere verbindungstroubles)

Blaues U-boot 08.05.2005 16:44

irgentwie ist die formatierung verschwunden :confused:
so wies aussieht grausts mich auch

hab jetzt gleich die exe mitgeliefert


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag