当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。
In mathematics, the Lucas-Lehmer test is a primality test for Mersenne numbers (numbers of the form 2n − 1). The test was originally developed by Edouard Lucas in 1856, and subsequently improved by Lucas in 1878 and Derrick Henry Lehmer in the 1930s. The well-known distributed computing project Great Internet Mersenne Prime Search (GIMPS) uses the test to locate Mersenne primes (Mersenne numbers that are also prime numbers). As of the time when this problem is composed, the largest known Mersenne prime is 232,382,657 − 1, which was discovered on September 4, 2006 by Curtis Cooper and Steven Boone.
The test works as follows. Let Mp = 2p − 1 be the Mersenne number to test with p a positive integer (in real applications only large primes are of interest since primality of Mp is easy to determine when p is relatively small and if p is composite, so is Mp). Define a sequence {si} for all i ≥ 0 by
s0 = 4;
si = s2i − 1 − 2 for all i > 0.
Then Mp is prime iff
sp − 2 ≡ 0 (mod Mp).
The number sp − 2 mod Mp is called the Lucas-Lehmer residue of p.
Your task is to write a simple implementation of the Lucas-Lehmer test.
The input contains one or more positive integers below 8,192 which are not necessarily primes, one on a each line. End-of-file (EOF) indicates the end of input.
For each integer in the input, output its Lucas-Lehmer residue in hexadecimal using digits 0
through 9
and lowercase letters a
through f
, each on a separate line.
59 61
64099e5fcbcaf36 0
Case time limit(单组数据时间限制) | 6000MS |
时间上限 | 内存上限 |
10000 | 65536 |