aboutsummaryrefslogtreecommitdiff
path: root/challenge-336/e-choroba/perl/ch-1.pl
blob: 80b711acba4df37694d0f58ec63b082772a39377 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
use warnings;
use strict;
use experimental qw( signatures );
use Math::Prime::Util qw{ gcd };

sub equal_group(@ints) {
    my %seen;
    ++$seen{$_} for @ints;

    my $gcd = gcd(values %seen);
    return 1 == $gcd ? 0 : 1
}

use Test2::V0;
use constant { true  => bool(1),
               false => bool(0) };
plan(5);

is equal_group(1, 1, 2, 2, 2, 2), true, 'Example 1';
is equal_group(1, 1, 1, 2, 2, 2, 3, 3), false, 'Example 2';
is equal_group(5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7), true, 'Example 3';
is equal_group(1, 2, 3, 4), false, 'Example 4';
is equal_group(8, 8, 9, 9, 10, 10, 11, 11), true, 'Example 5';