DEV Community

Discussion on: Daily Challenge Post #20 - Number Check

Collapse
 
choroba profile image
E. Choroba

Perl solution, using the modulo operator.

#!/usr/bin/perl
use warnings;
use strict;

sub prime_even_10 {
    my ($x) = @_;
    return $x > 1 && !(grep 0 == $x % $_, 2 .. sqrt $x),
           0 == $x % 2,
           0 == $x % 10
}

use Test::More tests => 11;

is_deeply [prime_even_10(0)],  [!1,  1,  1];
is_deeply [prime_even_10(1)],  [!1, !1, !1];
is_deeply [prime_even_10(2)],  [ 1,  1, !1];
is_deeply [prime_even_10(3)],  [ 1, !1, !1];
is_deeply [prime_even_10(4)],  [!1,  1, !1];
is_deeply [prime_even_10(5)],  [ 1, !1, !1];
is_deeply [prime_even_10(6)],  [!1,  1, !1];
is_deeply [prime_even_10(7)],  [ 1, !1, !1];
is_deeply [prime_even_10(8)],  [!1,  1, !1];
is_deeply [prime_even_10(9)],  [!1, !1, !1];
is_deeply [prime_even_10(10)], [!1,  1,  1];