Курс языка программирования Raku / Приложение 🆕 / Работа с данными / Числа и математика / Exercises / Разложение на простые множители
Решение: Разложение на простые множители
Вот один из возможных вариантов решения задачи.
Код
my $n = 360;
my @factors;
for 2..$n -> $d {
while $n %% $d {
@factors.push($d);
$n div= $d;
}
}
say @factors;🦋 Исходный код можно найти в файле prime-factors.raku.
Вывод
[2 2 2 3 3 5]Комментарии
Для каждого кандидата в делители
$dвнутреннийwhileвыделяет его из$nстолько раз, сколько тот помещается, добавляя$dв список при каждом делении. Поскольку меньшие множители удаляются первыми, любое$d, на которое$nещё делится, гарантированно простое.$n div= $d— это целочисленное деление обратно в$n; оно уменьшает число, пока не останется одна1.
Навигация по курсу
← Разложение на простые множители | Наибольший общий делитель и наименьшее общее кратное →