Primzahlen ausgeben < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | F¨ur eine vom Benutzer eingegebene nat¨urliche Zahl soll ermittelt und auf dem Bildschirm
ausgegeben werden, ob es sich um eine Primzahl handelt oder nicht. Die Methode ist dabei nicht vorgegeben, so dass auch ein sehr simpler Algorithmus verwendet werden darf, der di-
rekt auf der Definition des Begriffs Primzahl beruht (daher der Zusatz
”
ineffizient“ in der
Aufgabenbezeichnung).
Es sollen zur L¨osung dieser Aufgaben nicht die Funktionen factor, isprime, primes benutzt
werden!
Hinweis: Nat¨urlich d¨urfen bereits bekannte und/oder berechnete Ergebnisse verwendet werden.
Dabei wird die Verwendung von Vektoren oder Matrizen zur Zwischenspeicherung empfohlen. |
Mein simple Idee:
x=input('- belibiege, natürliche Zahl x:');
y=2:(x-1);
if mod(x,y)==0
disp([int2str(x) ' ist keine Primzahl.'])
else
disp([int2str(x) ' PRIMZAHL!'])
end
Wo ist denn da der Fehler?? Danke euch!
|
|
|
|
Hallo Helmut,
etwas umfangreicher wird das Programm schon sein müssen. Wenn Du keine Ergebnisse zwischenzpeichern willst, dann musst Du wenigstens folgende Schritte ausführen:
1) prüfen, ob x gerade ist. Wenn ja, ist x nicht prim.
2) prüfen ob x durch ungerade y mit [mm] 3\le y\le \wurzel{x} [/mm] teilbar ist. Für diesen Schritt brauchst Du eine Schleife mit Abbruchbedingung. Sobald x durch eine der Zahlen 3,5,7,9 etc. teilbar ist, ist es nicht prim.
3) Läuft die Schleife unter 2) bis zur Obergrenze [mm] \wurzel{x}, [/mm] ohne dass ein Teiler gefunden wird, so ist x prim.
Grüße
reverend
|
|
|
|