Primzahl

hallo zusammen,

ich soll ein program in vba erstellen - in welchen ich ne zahl eingebe und es mir ausrechnet ob es ne primzahl is ider nicht - nun gut - was vba is weiss ich was ne primzahl is weiss ich ja auch - aber ich kriegst einfach ned hin die beiden nett zu vereinen und ein richtiges program zu machen!
kann mir da jemand helfen?

eventl. hat jemand schon so n program zu hause liegen?

gruss manuel!
 
Hi
Also ich habe das Programm in der Schule schreiben müssen und habe es dort auch schon fertig. Ich kann dir das theoretisch schicken nur die Frage ist dann ob du es dann auch lernst :) !
Oder ich helf dir einfach... brauche aber erst das Prog und muss mich da nochmal kurz reinarbeiten !
 
Hallo,

das waere super wenn du es mir schicken koenntest - ich bin naemlich so einer der was sehen muss um es zu lernen! es ist schon so das ich programme schreibe - also ein bisschen kannich es - es waere aber super wenn du eben im code die erklaerung mit reintun koenntest! - das ist ja auch ned gut wenn nur der text da steh und ich nicht weiss was in welcher zeile gemacht wird!

gruss manuel!
 
Ich geb ganz bewusst kein fertigen Code raus, weil sonst lernst nix.


Aber ich erklär mal die Formel die es braucht, um schnell und einfach ne Primzahl zu bestimmen.

1. was wir alle wissen: ausser der 2 gibt es keine geraden Primzahlen.

weg das rauszufinden INPUT \ 2 \ ist Moduladivision, welche wenn ungerade REST ausgibt.

2. Wenn Rest ist, dann ist die Zahl zumindest mal ungerade, was bedeutet, dass Du noch weitertesten musst.

Der INPUT wird also nun mit Primzahlen von unten her dividiert

Beispiel

1241325 \ 2 = Rest 1
1241325 \ 3= 413375 Rest 0

was nun in diesem Fall schon reicht, um zu sagen, das ist keine Primzahl
 
hallo,

Function IsPrimeNumber(ByVal Number As Long) As Boolean
Dim Counter As Long

If Number Mod 2 = 0 Or Number = 1 Then 'Wenn die angegebene Zahl
If Number <> 2 Then 'durch 2 teilbar ist (jedoch
IsPrimeNumber = False 'ungleich 2) oder gleich 1 ist,
Exit Function 'ist es keinesfalls eine Primzahl
End If
End If

For Counter = 1 To Number - 1 Step 2 'Eine Schleife von
If Number Mod Counter = 0 Then '1 bis zur angegebenen
If Counter <> 1 Then 'Zahl - 1 durchlaufen,
IsPrimeNumber = False 'wobei jede 2. Zahl aus-
Exit Function 'gelassen wird, da die
End If 'Teilbarkeit durch 2 bereits
End If 'geprüft wurde. Wird ein
Next Counter 'Teiler <> 1 gefunden, ist
'die Zahl keine Primzahl.
IsPrimeNumber = True
End Function

das grundprinzip is mir klar!

wo mein problem ist:

ich hab eine "maske" in welcher ich
- ein textfeld habe (txtZahl) in der man eben eine zahl eingebe muss
- einen button (cmdBerechnen) auf dem ich klicke und dann wird gerechnet !
- noch n textfeld (txtLoesung) in welchen drinnen steht - Es ist keine Primzahl oder Es ist eine Primzahl!

nur wenn ich eben auf den cdm klicke tut sich nuescht bzw - es kommt fehler das end sub erwartet wird und das macht mich ganz wuschelig!

also was ich brauch ist eben ein programm welches fertig ist und in dem die einzelenen schritte nachvollziehbar sind ode jemanden der verdammt viel geduld hat und dies mit mir per mail abklaert! schritt fuer schritt!

weiss du was ich mein?

gruss manuel!
 
der Fehler mit dem End Sub sagt doch schon viel.

hast Du schon mal mit den Debugging funktionen des Editors gearbeitet.

damit solltest Du diesen Fehler finden können.
Damit kannst Du nämlich in 99 % aller Fälle rausfinden bis wo es , und ab wo nicht mehr.

Wenn Du ins nächste Post mal als Anhang die ganze *xls anhängst, dann könnte jeder probieren, wo der Fehler sein könnte.
 
Zuletzt bearbeitet:
Ok - ich hab mich ein bisschen gespielt - aber ....................keine ahnung - irgenwas passt ned und mein kopf ist leer - hab nun wieder voll blackout - kann dus dir mal ansehen? danke! .....................................aeh wie kann ich es dir zukommen lassen?
 

Neue Beiträge

Zurück