Skip to content

akalin/aks-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is an implementation of the AKS primality test (
http:https://en.wikipedia.org/wiki/AKS_algorithm ) in Go.

To run:

cd bin-src/aks
go build

# Should indicate composite.
./aks 2993374621

# Should indicate prime.
./aks 2685241991

To use in your code:

import "github.com/akalin/aks-go/aks"

var n big.Int
// Set n to the number you wish to test.
var jobs int
// Set jobs to the number of goroutines to use when testing n.
r := aks.CalculateAKSModulus(&n)
M := aks.CalculateAKSUpperBound(&n, r)
logger := log.New(os.Stderr, "", 0)
a := aks.GetAKSWitness(&n, r, &big.Int{}, M, jobs, logger)
if a != nil {
	// n is composite with AKS witness a
} else {
	// n is prime
}

Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.

About

An implementation of the AKS algorithm in Go.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages