Нужно написать программу проверки числа на простоту и в противном случае разложения его на простые множители Java \ C++
1) Рандомное задание числа 15 значное
2) Проверка на простоту и если не простое
3) Разложение на простые множетили
Ввод вывод писать не буду, сам разберешься. Как определить простое ли число?? Самый простой вариант - в лоб перебрать все числа от 1 до (самого часла - 1) и делить число на эти числа.
n - число
for (int i = 2; i < n; i++) {
if (n % i == 0) //если да, то число составное, иначе ВОЗМОЖНО простое.
}
минус этого способа в том, что число может быть Очень большим, а перебирать всё слишком долго. Тут на помошь приходят древние математики - достаточно перебирать до числа под корнем. Тогда:
for (int i = 2; Math.sqrt(n) + 1; i++) и тд. Этого достаточно для скорости... А вот как разложить на простые множители... хм...
{
if (n % i == 0) {
вот и первый множитель - i.
создай хранилище (например динамический массив) и записывай туда текущий i.
а потом начинай весь цикл заного, только n = n / i;
}
}
Ну и в конце смотришь - если "хранилище" пустое, то число простое, иначе выводи содержимое (и есть множители). Как то так.
Заходишь в интернет, ищешь признаки простого числа, смотришь алгоритм, реализуешь
Пиши. Пацаны не против