Programa 3 cap 1
-module(par_impares). -export([imprimir_pares/0]).
imprimir_pares() -> imprimir_pares(2).
imprimir_pares(N) when N =< 48 ->
io:format("pn", [N]),
imprimir_pares(N + 2);
imprimir_pares(_) ->
ok.
Programa 1 Cap 7
-module(prime). -export([is_prime/1]).
is_prime(N) when N < 2 -> false; is_prime(2) -> true; is_prime(N) -> is_prime(N, 2).
% Función auxiliar que hace la verificación de primalidad is_prime(N, Divisor) when Divisor * Divisor > N -> true; is_prime(N, Divisor) when N rem Divisor == 0 -> false; is_prime(N, Divisor) -> is_prime(N, Divisor + 1).
Programa 3 Cap 16
-module(guess_game). -export([start/0, handle_guess/2, check_number/2]).
start() -> % Genera un número aleatorio entre 1 y 100 RandomNumber = random:uniform(100), io:format("¡Bienvenido al juego de adivinar el número!~n"), io:format("Adivina un número entre 1 y 100:~n"), handle_guess(RandomNumber, 0).
handle_guess(RandomNumber, Attempts) -> {ok, [Guess]} = io:fread("", "~d"), % Lee la entrada del usuario check_number(RandomNumber, Guess), Attempts1 = Attempts + 1, if Guess == RandomNumber -> io:format("¡Felicidades! Adivinaste el número ~p en ~p intentos.~n", [RandomNumber, Attempts1]); true -> handle_guess(RandomNumber, Attempts1) end.
check_number(RandomNumber, Guess) -> if Guess < RandomNumber -> io:format("Demasiado bajo. Intenta nuevamente:~n"); Guess > RandomNumber -> io:format("Demasiado alto. Intenta nuevamente:~n"); true -> ok % Cuando es correcto, no hace nada, se maneja en handle_guess end.