Условие задачи
Вывести представление целого числа $n$ в виде произведения простых чисел.
Входные данные 
Единственное число $n (2 \leq  n \leq  2^{31} — 1).$
Выходные данные 
Вывести список простых множителей в порядке неубывания, разделённых знаком «$*$».
Тесты 
| Входные данные | Выходные данные | 
|---|---|
| 30 | 2*3*5 | 
| 16 | 2*2*2*2 | 
| 5 | 5 | 
Код программы
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.io.BufferedReader; import java.io.InputStreamReader; class Main { 	public static void main (String[] args) throws java.lang.Exception 	{ 		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));         String[] params1 = bufferedReader.readLine().split(" ");         long numb, divisor = 2;         numb = Integer.parseInt(params1[0]);         while (divisor*divisor <= numb)         {             if (numb%divisor == 0)             {                 System.out.print(divisor);                 numb = numb / divisor;                 System.out.print('*');             }             else if (divisor == 2) divisor = 3;             else divisor = divisor + 2;         }         System.out.print(numb); 	} } | 
Решение задачи
Пока наше число больше либо равно 
			divisor*divisor выполняется:
- Если numb делится нацело на divisor, мы выводим наш делитель, следовательно numb делится на divisor;
- В противном случае:
- Если divisor равен $2$ , то присваиваем ему значение $3$ и повторяем;
- В другом случае увеличиваем его на $2$;
Таким образом перебираются $2$,$3$ и $5$, которые являются делителем для всех чисел.
Ссылки
Задача на сайте e-olymp
Код решения в Ideone
