Witam, napisałem program który ma wypisywać liczby które nie są liczbami pierwszymi. Gdy w drugiej pętli for: j <= i, wtedy dostaje błędne wyniki.
run:
liczba 3 nie jest liczba pierwsza
liczba 4 nie jest liczba pierwsza
liczba 6 nie jest liczba pierwsza
liczba 8 nie jest liczba pierwsza
liczba 9 nie jest liczba pierwsza
liczba 10 nie jest liczba pierwsza
liczba 12 nie jest liczba pierwsza
liczba 14 nie jest liczba pierwsza
liczba 15 nie jest liczba pierwsza
liczba 16 nie jest liczba pierwsza
liczba 18 nie jest liczba pierwsza
liczba 20 nie jest liczba pierwsza
BUILD SUCCESSFUL (total time: 0 seconds)
Liczby 2 nie wypisało i wypisało że liczba 3 nie jest liczba pierwsza. Natomiast gdy: j < i program działa dobrze z założeniem, wypisuje wszystkie liczby które nie są pierwsze do n.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaliczbypierwsze;
/**
*
* @author marcin
* program wypisuje liczby ktore nie sa pierwsze
*/
public class JavaLiczbyPierwsze {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int licznik = 0;
int n = 20;
for (int i = 2; i <= n; ++i) {
for (int j = 1; j < i; ++j) {
if (i % j == 0) {
licznik++;
}
if (licznik > 2) {
System.out.println("liczba " + i + " nie jest liczba pierwsza");
licznik = 0;
break;
}
}
}
}
}
run:
liczba 4 nie jest liczba pierwsza
liczba 6 nie jest liczba pierwsza
liczba 8 nie jest liczba pierwsza
liczba 10 nie jest liczba pierwsza
liczba 12 nie jest liczba pierwsza
liczba 14 nie jest liczba pierwsza
liczba 15 nie jest liczba pierwsza
liczba 16 nie jest liczba pierwsza
liczba 18 nie jest liczba pierwsza
liczba 20 nie jest liczba pierwsza
BUILD SUCCESSFUL (total time: 0 seconds)