Advertisement
TSorbera

Untitled

Jan 19th, 2016
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.07 KB | None | 0 0
  1. using Mpir.NET;
  2. using System;
  3. using System.Collections.Generic;
  4.  
  5. namespace MersenneHint
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             var logFactor = Math.Log10(2);
  12.             foreach (var p in GetPrimes(74000000, 75000000))
  13.             {
  14.                 var digits = (int)Math.Floor(p * logFactor) + 1;
  15.                 var mpSec = mpz_t.Two.PowerMod(p, mpz_t.Ten.Power(digits - 19391387 + 1)) - 1;
  16.                 mpSec = mpSec.Divide(mpz_t.Ten.Power(digits - 19391387 + 1 - 7));
  17.                 var mpSecStr = mpSec.ToString();
  18.                 if (mpSecStr == "2718281")
  19.                     Console.WriteLine(p);
  20.             }
  21.             Console.WriteLine("done");
  22.             Console.ReadLine();
  23.         }
  24.  
  25.         static IList<int> GetPrimes(int from, int to)
  26.         {
  27.             var primes = new List<int>();
  28.             for (mpz_t i = new mpz_t(from).NextPrimeGMP(); i <= to; i = i.NextPrimeGMP())
  29.             {
  30.                 primes.Add((int)i);
  31.             }
  32.             return primes;
  33.         }
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement