Skip to content

pwasiewicz/Primes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Primes

Useful collection of tools for .NET Core that handlies prime numbers. Very big prime numbers (BigInteger).

Api / Docs

Testing primality

var someBigNBumber = new BigInteger("2391030138092183021830123");
var isPrime = await someBigNumber.IsPrimeAsync(new RobinMillerTest(complexity: 50))

Available test algorithms:

  • Miller–Rabin test
  • Fermat test
  • Solovay-Strassen test
  • Naive test

Implementing own test

You can create own test. All you need is to implement interface:

public interface IPrimalityTest
{
    Task<bool> TestAsync(BigInteger source);
}

You can also use helper class:

public abstract class PrimalityTest: IPrimalityTest
{
}

It has bunch of methods that can be useful for testing.

Generating primes

PrimaryBigInteger class contains some methods like generating prime numbers:

public static Task<BigInteger> GeneratePrime(uint bitLength, IRandomProvider randomProvider, IPrimalityTest primalityTest)
public static Task<BigInteger> GenerateProbablyPrime(uint bitLength)

Mersenne sequence

MersenneSequence is a class, that contains bunch of methods for handling that sequence:

public static BigInteger Value(int n)

Generates a value of n-th mersenne number

public static IEnumerable<BigInteger> Generate(int count = int.MaxValue)

Generates an enumerable that contains a specified count of mersenne numbers

public static Task<bool> IsPrimeAsync(int n)

Checkes wheter n-th mersenne number is prime or not

About

Prime number helpers for .NET Core.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages