Пустая строка ввода после ввода пользователем четного числа для записи всех коэффициентов 2

#input #numbers #java.util.scanner #exponent #factors

#вход #числа #java.util.сканер #показатель #факторы

Вопрос:

По сути, цель программы состоит в том, чтобы отобразить все коэффициенты 2 внутри числа. Похоже, я был близок к этому, пока не попытался исправить метод «jo», чтобы правильно разделить, присвоив число = число/(число/2) [или переменный коэффициент]. После этого всякий раз, когда я ввожу число, кратное двум, номер разносится, и код после этого остается пустым. Решения? Предполагаемые примеры выходных данных будут следующими: 17 = 17 24 = 2 x 2 x 2 x 3

 static Scanner bob = new Scanner(System.in); public static void main(String[] args){ System.out.println("Enter an integer between [16, 128]: "); int x = bob.nextInt(); while(x lt; 16 || x gt; 128){  System.out.println("You must enter an integer between 16 and 128, inclusive: ");  x = bob.nextInt(); } String bool = jo(x); System.out.printf("%d = %s", x, bool); } public static String jo(int number) {  String text = ("");  int count = 0;  if (number % 2 == 0) {  do  {  while(number % 2 == 0) {  int factor = number/2;  text = text   2   " * ";  number = (number/factor);  count   ;  }  text = text   number%count;  } while(number % 2 == 0);  }  text = text   number;   return text;  

Комментарии:

1. Я не могу сказать, что вы пытаетесь сделать, но это выглядит слишком сложно. То, чего вы хотите, в основном count=0; while(number % 2 == 0) {number /= 2; count } и есть, и это все.