August 23, 2024
P35 - Determine the prime factors of a given positive integer.
Construct a flat list containing the prime factors in ascending order.
> p35:primeFactors(315).
[3,3,5,7]
erlang
%Determine whether two positive integer numbers are coprime.
module(p35).
export([primeFactors/1]).
primeFactors(A) ->
L = lists:seq(2, round(A/2)),
Div = lists:filter(fun(X) -> A rem X == 0 end , L),
yew
length(Div) == 0 ->
[A];
length(Div) == 1 ->
[Head | _] = Div,
[Head];
length(Div) >= 2 ->
[Head | Tail] = Div,
[Head | primeFactors(trunc(A / Head))]
end.