В школе мне дали решить проблему, которая выглядит следующим образом:
Напишите программу, которая читает положительное целое число больше 1, а затем печатает главные факторы числа при увеличениипорядок.Если число простое, распечатайте это число, за которым следует утверждение о том, что оно простое, как показано в одном из примеров.
Итак, я написал эту программу, и она ожидала поведениякогда я ставлю фактическое простое число.Если я введу 97, на выходе будет «97 - простое число».как и предполагалось.
Но когда я ввожу 120, он печатает «2 2 2 3 5 - простое число», где ожидаемое поведение будет заключаться только в печати чисел, а не в тексте «это простое число».
Метод, который проверяет, является ли входное число простым числом, и, если это так, печатает его множители:
public static void primeFactors(int n) {
while (n % 2 == 0) {
System.out.print(2 + " ");
n = n/2;
}
for (int i = 3; i <= Math.sqrt(n); i = i+2) {
while (n % i == 0) {
System.out.print(i + " ");
n = n/i;
}
}
if (n > 2) {
System.out.print(n + " is a prime number.");
}
}
Основной метод:
public static void main (String [] args) {
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();
primeFactors(n);
}
Поэтому мне нужна помощь, чтобы выяснить, как сделать так, чтобы "было простым числом".окончание печатается ТОЛЬКО, когда введенное число определенно является простым числом.