]> gitweb.factorcode.org Git - factor.git/blob - extra/project-euler/097/097.factor
project-euler: Rewrap, update links, add copyrights, tests
[factor.git] / extra / project-euler / 097 / 097.factor
1 ! Copyright (c) 2008 Aaron Schaefer.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: math math.functions project-euler.common ;
4 IN: project-euler.097
5
6 ! https://projecteuler.net/problem=97
7
8 ! DESCRIPTION
9 ! -----------
10
11 ! The first known prime found to exceed one million digits was
12 ! discovered in 1999, and is a Mersenne prime of the form
13 ! 2^6972593 − 1; it contains exactly 2,098,960 digits.
14 ! Subsequently other Mersenne primes, of the form 2p − 1, have
15 ! been found which contain more digits.
16
17 ! However, in 2004 there was found a massive non-Mersenne prime
18 ! which contains 2,357,207 digits: 28433 * 2^7830457 + 1.
19
20 ! Find the last ten digits of this prime number.
21
22
23 ! SOLUTION
24 ! --------
25
26 : euler097 ( -- answer )
27      2 7830457 10 10 ^ ^mod 28433 * 10 10 ^ mod 1 + ;
28
29 ! [ euler097 ] 100 ave-time
30 ! 0 ms ave run timen - 0.22 SD (100 trials)
31
32 SOLUTION: euler097