RosettaCodeData/Task/Even-or-odd/Picat/even-or-odd.picat
2023-07-01 13:44:08 -04:00

19 lines
507 B
Text

% Bitwise and
is_even_bitwise(I) = cond(I /\ 1 == 0, true, false).
% Modulo
is_even_mod(I) = cond(I mod 2 == 0, true, false).
% Remainder
is_even_rem(I) = cond(I rem 2 == 0, true, false).
yes_or_no(B) = YN =>
B = true, YN = "Yes";
B = false, YN = "No".
main :-
foreach (I in 2..3)
printf("%d is even? %s\n", I, yes_or_no(is_even_bitwise(I))),
printf("%d is even? %s\n", I, yes_or_no(is_even_mod(I))),
printf("%d is even? %s\n", I, yes_or_no(is_even_rem(I)))
end.