Не получается разложить число х
на множители:
for (int i = 1; i <= x; i++) {
if (x % i == 0) {
a = i;
System.out.print(a + " ")
}
}
currentValue
- копию числа, дабы не портить оригинал) и первый множитель (multiplier
) равный 2
. +1
в случае 2
и +2
в других случаях).1
, а множитель меньше квадратного корня из оригинального числа (sqrt
).Если проверяемое значение не равно 1
после цикла, то выводим его.
int x = 660;
double sqrt = Math.sqrt(x);
int currentValue = x;
int multiplier = 2;
while (currentValue > 1 && multiplier <= sqrt)
{
if (currentValue % multiplier == 0)
{
System.out.print(multiplier + " ");
currentValue /= multiplier;
}
else if (multiplier == 2)
{
multiplier++;
}
else
{
multiplier += 2;
}
}
if (currentValue != 1)
{
System.out.print(currentValue);
}
Это издевательство - перебирать все подряд...
Посмотрите, например, тут - недавний вопрос.
Я в Java не мастак, поэтому расскажу словами (на C++ - см. по приведенной ссылке).
Если не строить таблицу простых чисел, то
1. Пока N четно, делим на 2 и записываем 2 как один из делителей (их может быть несколько).
2. Теперь N нечетно. Начиная с 3, проверяем все нечетные числа, до квадратного корня из N (проверяя для простоты i*i <= N, а не вычисляя корень), на делимость. Если не делится ни на одно - выписываем последний простой множитель - само N, и завершаем работу.
3. Если делится - выписываем очередной делитель, делим на него N, и повторяем цикл из п.2 для нового значения N, начиная не с 3, а с последнего найденного делителя.
Вот, собственно, и все.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь разобраться как реаизовать авторизацию, получилось сдлеать, но только работает до перезапуска браузера
Учусь на курсах програмированияУ меня есть два идентичных активити
Есть класс, который наследуется от Service, этот класс вызывает уведомление