大型非梅森素数

作者:Andrei Osipov

https://projecteuler.net/problem=97

第一个已知的超过一百万位的素数是在 1999 年发现的,它是一个梅森素数,形式为 26972593−1;它正好包含 2,098,960 位数字。随后,人们发现了更多形式为 2p−1 的梅森素数,它们包含更多位数。

然而,在 2004 年,人们发现了一个巨大的非梅森素数,它包含 2,357,207 位数字:28433×2**7830457+1。

求这个素数的最后十位数字。

源代码:prob097-andreoss.pl

use v6;

sub power-mod($b is copy, $e is copy, $m is copy
                                       where $b & $e & $m > 0)  {
    my $r = 1;
    while $e != 0 {
        $r = $r * $b mod $m if $e !%% 2;
        $e = floor $e/2;
        $b = $b ** 2 mod $m
    }
    $r;
}

say (power-mod(2, 7830457, 10**10) * 28433 + 1) mod 10**10 ;