Program, który sprawdza, czy podana liczba naturalna jest doskonała. Chcę wykorzystać metodę statyczną zwracającą wartość typu boolean. Napisałem program, kompiluje się, aczkolwiek wyświetla błędny rezultat np że 28 nie jest liczbą doskonała, a to błąd.
import java.util.Scanner;
public class LiczbaDoskonala {
static int odczytajLiczbe() {
Scanner odczyt = new Scanner(System.in);
return odczyt.nextInt();
}
static boolean sprawdzLiczbeDoskonala(int liczba) {
int suma = 0;
for (int i = 1; i <= i / 2; i++) {
if (liczba % i == 0)
suma += i;
}
if (suma == liczba) {
return true;
} else {
return false;
}
}
public static void main(String args[]) {
int liczba;
System.out.print("Podaj liczbe naturalna ktora chcesz sprawdzic: ");
liczba = odczytajLiczbe();
if (sprawdzLiczbeDoskonala(liczba))
System.out.println("Podana liczba jest doskonala");
else
System.out.println("Podana liczba nie jest doskonala");
}
}