Cześć, tak jak w temacie, chciałem napisać program który wypisuje liczby pierwsze z przedziału podanego przez użytkownika... nie jestem w stanie teraz sam sprawdzić co jest źle. W mainie wczytuje 2 liczby x1 i x2 później idzie pętla od x1 do x2 i w każdym obrocie pętli w if'ie sprawdzam czy jest to liczba pierwsza.
//main
package liczby_pierwsze;
import java.lang.*;
import java.util.Scanner;
public class Liczby_pierwsze {
public static void main(String[] args) {
System.out.println("Podaj przedzial x1<x2");
Scanner sc = new Scanner(System.in);
int x1 = sc.nextInt();
int x2 = sc.nextInt();
czy_pierwsza c = new czy_pierwsza();
for(int i = x1; i<=x2;i++){
if (c.licz(i)) {
System.out.println(i);
}
}
}
}
//klasa pomocnicza
package liczby_pierwsze;
public class czy_pierwsza {
public boolean licz(int x){
int licznik = 0;
int z = (int) Math.sqrt(x);
for(int i=0;i<=z;i++){
if(z%i == 0){
licznik++;
}
}
if(licznik>2)
return false;
else return true;
}
}