Quick actions

cmd+k|ctrl+k

Navigation

Languages

Palomar

Snippet info

Language

Mercury

Visibility

public

Author

jikooklifu9597

Created

2025-05-12T13:57:40.697695Z

Updated

2025-05-12T13:57:40.697695Z

:- module main.
:- interface.
:- import_module io.

:- pred main(io::di, io::uo) is det.

:- implementation.
:- import_module list, int, string, bool.

% predicado que verifica el teorema del palomar
:- pred pigeonhole(int::in, int::in, bool::out) is det.
pigeonhole(N, M, Result) :-
    ( if N > M then
        Result = yes
    else
        Result = no
    ).

% predicado para imprimir el resultado
:- pred print_result(int::in, int::in, bool::in, io::di, io::uo) is det.
print_result(N, M, Result, !IO) :-
    ( if Result = yes then
        io.write_string(format("%d palomas en %d casilleros: Al menos un casillero contendrá más de una paloma.\n", [i(N), i(M)]), !IO)
    else
        io.write_string(format("%d palomas en %d casilleros: Ningún casillero contendrá más de una paloma.\n", [i(N), i(M)]), !IO)
    ).

main(!IO) :-
    % Ejemplos de prueba
    Pigeons1 = 23,
    Holes1 = 10,
    pigeonhole(Pigeons1, Holes1, Result1),
    print_result(Pigeons1, Holes1, Result1, !IO),

    Pigeons2 = 5,
    Holes2 = 5,
    pigeonhole(Pigeons2, Holes2, Result2),
    print_result(Pigeons2, Holes2, Result2, !IO).
INFO