大型非梅森素数
作者:Andrei Osipov
https://projecteuler.net/problem=97
第一个已知的超过一百万位的素数是在 1999 年发现的,它是一个梅森素数,形式为 26972593−1;它正好包含 2,098,960 位数字。随后,人们发现了更多形式为 2p−1 的梅森素数,它们包含更多位数。
然而,在 2004 年,人们发现了一个巨大的非梅森素数,它包含 2,357,207 位数字:28433×2**7830457+1。
求这个素数的最后十位数字。
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 ;