Witam.
Napisałem programik, który powinien dla liczb od 1 do 10000 dopisać TAK - jeżeli jest to liczba pierwsza lub NIE jeżeli jest to liczba złożona.
Niby wszystko działa. Program się kompiluje, wybiera dobrze liczby pierwsze, ale wyświetla mi liczby zaczynając od 3, omija 1 i 2.
Nie mogę znaleźć błędu.
Jeżeli ktoś miałby chwilkę i mi pomógł to byłbym wdzięczny.
public class LiczbyPierwszeSPOJ {
public static void main(String[] args) {
for (int n=1; n<100000; n++) {
for (int i=2; i<n; i++) {
int reszta = reszta(n, i);
if (reszta != 0) {
int j = n-1;
if (i == j) {
System.out.println(n + " " + reszta + " " + "TAK");
}
else
continue;
}
else
System.out.println(n + " " + reszta + " " + "NIE");
break;
}
}
}
public static int reszta(int liczba1, int liczba2) {
int wynik = liczba1 / liczba2;
int wynik2 = wynik * liczba2;
int reszta = liczba1 - wynik2;
return reszta;
}
}
Tak wygląda wynik dla n<50:
3 1 TAK
4 0 NIE
5 1 TAK
6 0 NIE
7 1 TAK
8 0 NIE
9 0 NIE
10 0 NIE
11 1 TAK
12 0 NIE
13 1 TAK
14 0 NIE
15 0 NIE
16 0 NIE
17 1 TAK
18 0 NIE
19 1 TAK
20 0 NIE
21 0 NIE
22 0 NIE
23 1 TAK
24 0 NIE
25 0 NIE
26 0 NIE
27 0 NIE
28 0 NIE
29 1 TAK
30 0 NIE
31 1 TAK
32 0 NIE
33 0 NIE
34 0 NIE
35 0 NIE
36 0 NIE
37 1 TAK
38 0 NIE
39 0 NIE
40 0 NIE
41 1 TAK
42 0 NIE
43 1 TAK
44 0 NIE
45 0 NIE
46 0 NIE
47 1 TAK
48 0 NIE
49 0 NIE
P.s. Proszę tylko bez krzyków, uczę się javy od niedawna ;-)