Моя программа должна вычислять простые числа, но останавливается после первого числа
Итак, я написал эту небольшую программу, которая должна проверять, является ли число простым числом, и если это так, следует добавить его в массив. Проблема в том, что он просто добавляет число 3, а затем останавливается. Может ли кто-нибудь объяснить мне, почему он так себя ведет?
import java.util.ArrayList;
public class main{
public static void main(String args[]){
ArrayList Primzahlen=new ArrayList();
int current=1;
boolean prim=true;
for(int a=0;a<100;a++){
for(int b=2;b<current;b++){
if(current%b==0){
prim=false;
}
if(b==current-1){
if(prim==true){
Primzahlen.add(current);
}
}
}
current++;
}
System.out.println(Primzahlen);
}
}
1 ответ
Вам нужно сбросить prim на true после того, как вы закончите проверку текущего значения.
public static void main(String args[]){
ArrayList Primzahlen=new ArrayList();
int current=1;
boolean prim=true;
Primzahlen.add(2);
for(int a=3;a<100;a++){
for(int b=2;b<current;b++){
if(current%b==0){
prim=false;
}
if(b==current-1){
if(prim==true){
Primzahlen.add(current);
}
}
}
prim=true;
current++;
}
System.out.println(Primzahlen);
}
Обратите внимание на прим =true вблизи текущего ++