![]() |
[JAVA]Algorithmus Primzahlberechnung von zwei bis k gesucht
Hallo
Ich brauch ein Programm in JAVA das mir die Primzahlen von 2 bis zum Parameter k als Array ausgibt. Ein Code für die alle zahlen bis k hab ich:
Code:
und einen Code für die Primzahlüberprüfung hab ich auch:
public int[] primAnz(k)
{ int i=1; int[] Array = new int[k]; for (i=0; i<=k-1; i++){Array[i]=i+1;} }
Code:
So. Mein Problem besteht jetzt darin, das ich die beiden
public boolean prim(int x)
{ for (int i=2; x>i; i++){ if (x%i==0) return false;} return true; } Codes nicht sinnvoll zusammensetzten kann so das das gewünschte Ergebnis herraus kommt. Hat einer von euch da 'ne Idee?? mfg NDR |
Re: [JAVA]Algorithmus Primzahlberechnung von zwei bis k gesu
Wir hatten noch keine Array in Java :( , habs trotzdem versucht.
Code:
Du gehst alle Zahlen durch, wenn die Zahl an der Stelle i eine Primzahl ist, wird sie dem Array hinzugefügt. Hoffe das stimmt so. ;)
public int[] primAnz(k){
int i=1; int[] Array = new int[k]; for (i=0; i<=k-1; i++){ if(prim(i)){ Array[].Add(i); } } } public boolean prim(int x) { for (int i=2; x>i; i++){ if (x%i==0) return false;} return true; } |
Re: [JAVA]Algorithmus Primzahlberechnung von zwei bis k gesu
@freak4fun:
Zitat:
aber das problem bei den code ist jetzt das die funktion >Array[].Add(i);< so nicht (bei mir jedenfalls) funktioniert da so denk ich mal, keine stelle zugewiesen wird wo der Wert gespeichert werden soll... ich danke trotzdem für deine idee^^ |
Re: [JAVA]Algorithmus Primzahlberechnung von zwei bis k gesu
Hi,
am einfachsten kannst Du Dir mit einer Liste (java.util.List / java.util.ArrayList / java.util.Vector /...) weiterhelfen. Achtung, java.util.List ist nur ein Interface. Die kann man alle auch in ein Array umwandeln. Alternativ kannst Du halt auch ausnutzen, dass Du maximal k Primzahlen finden kannst. Leg also einfach ein Array der Größe k temporär an und verwalte dort die tatsächliche Belegung in einer lokalen Variable. Diese Variable kannst Du einfach mit 0 initialisieren und immer wenn Du eine Primzahl einfügst erhöhst Du die um 1. Somit entspricht die dem Index der ersten freien Zelle im Array. Als Ergebnis der Methode kannst Du dann einfach ein Array anlegen, dass so lang wie diese lokale Variable ist und kopierst eben von 0 bis Wert der Variable in dieses neue Array, dass Du dann zurück gibst. Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz