Task 81. Факторизация числа

Task 81. Факторизация числа

UniLecs

Задача: по заданному натуральному числу найти все его простые делители. Вывести все эти делители в степени, в ктр они встречаются в числе.

Входные данные: n - натуральное число, где n <= 10^4

Вывод: вывести все простые делители числа и указать для каждого делителя степень, в ктр они встречаются в n.

Пример:

1. n = 525; Answer = 3 * 5^2 * 7

2. n = 199; Answer = 199

Идея: факторизация числа довольно обширная тема, существует несколько алгоритмов для факторизации. Мы воспользуемся тривиальным делением с небольшими оптимизациями. Остальные алгоритмы по факторизации числа вы можете посмотреть на след.ресурсах:

В нашем решении все очевидно, переберем все возможные простые делители числа n от 2 до  корня n и для каждого делителя подсчитаем количество его вхождений в  n.

Реализация:

реализация на C#

https://gist.github.com/unilecs/6c4ba9301ea99b6f65ae72b3466bd189

Тест:

https://dotnetfiddle.net/fmzgW1

Report Page