Ich arbeitete mit Codierung in Java und ich bin in diesem Code stecken, die ich zum Auffinden von Primzahlen implementiert habe.So finden Sie Primzahlen mit einer ArrayList in Java
public class PrimeList {
ArrayList<Integer> list;
public PrimeList(int n){
list = new ArrayList<Integer>();
preparePrimeList(n);
}
private void preparePrimeList(int n){
int c =0;
for (int i=0; i<=n; i++) {
if (i%2!=0 && i%3!=0 && i%5!=0 && i%7!=0) {
list.add(i);
c++;
}
}
list.remove(0);
list.remove(1);
}
public void printPrimeList(){
System.out.println(list);
}
public boolean isPrime(int nbr){
if (list.contains(nbr)) {
return true;
}
return false;
}
public static void main(String[] args) {
PrimeList primes = new PrimeList(100);
primes.printPrimeList();
primes.isPrime(33);
}
}
Wenn ich den Code erhalte ich die folgende laufen:
[11, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
Warum erhalte ich falsch ausgegeben? der Ausgang sollte so sein:
2, 3, 4, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79,
83, 89, 97
false
Was mache ich falsch?
Danke
Ihr Algorithmus ist falsch 'i% 2 = 0 && i% 3 = 0 && i% 5 = 0 && i% 7 = 0 'ist dumme Art und Weise zu prüfe Primzahlen. – gevorg
was soll ich tun? danke – Joe
Schau dir das an: http://www.mkyong.com/java/how-to-determine-a-prime-number-in-java/ – gevorg