#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Math::Prime::Util qw/is_semiprime/;
my $usegmp = Math::Prime::Util::prime_get_config->{'gmp'};
plan tests => 5;
{
is_deeply( [grep { is_semiprime($_) } 10000..10100],
[qw/10001 10003 10006 10015 10018 10019 10021 10022 10027 10029 10031 10033 10041 10042 10046 10049 10055 10057 10063 10073 10077 10078 10081 10083 10085 10097/],
"Identify semiprimes from 10000 to 10100" );
is(is_semiprime("669386384129397581"), 1, "is_semiprime(669386384129397581)");
is(is_semiprime("10631816576169524657"), 1, "is_semiprime(10631816576169524657)");
is(is_semiprime("1814186289136250293214268090047441303"), 0, "is_semiprime(1814186289136250293214268090047441303)");
SKIP: {
skip "Skipping difficult is_semiprime", 1 unless $usegmp;
is(is_semiprime("42535430147496493121551759"), 0, "is_semiprime(42535430147496493121551759)");
}
}