How to resolve the algorithm Repunit primes step by step in the F# programming language
How to resolve the algorithm Repunit primes step by step in the F# programming language
Table of Contents
Problem Statement
Repunit is a portmanteau of the words "repetition" and "unit", with unit being "unit value"... or in laymans terms, 1. So 1, 11, 111, 1111 & 11111 are all repunits. Every standard integer base has repunits since every base has the digit 1. This task involves finding the repunits in different bases that are prime. In base two, the repunits 11, 111, 11111, 1111111, etc. are prime. (These correspond to the Mersenne primes.) In base three: 111, 1111111, 1111111111111, etc. Repunit primes, by definition, are also circular primes. Any repunit in any base having a composite number of digits is necessarily composite. Only repunits (in any base) having a prime number of digits might be prime.
Rather than expanding the repunit out as a giant list of 1s or converting to base 10, it is common to just list the number of 1s in the repunit; effectively the digit count. The base two repunit primes listed above would be represented as: 2, 3, 5, 7, etc. Many of these sequences exist on OEIS, though they aren't specifically listed as "repunit prime digits" sequences. Some bases have very few repunit primes. Bases 4, 8, and likely 16 have only one. Base 9 has none at all. Bases above 16 may have repunit primes as well... but this task is getting large enough already.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Repunit primes step by step in the F# programming language
Source code in the fsharp programming language
// Repunit primes. Nigel Galloway: January 24th., 2022
let rUnitP(b:int)=let b=bigint b in primes32()|>Seq.takeWhile((>)1000)|>Seq.map(fun n->(n,((b**n)-1I)/(b-1I)))|>Seq.filter(fun(_,n)->Open.Numeric.Primes.MillerRabin.IsProbablePrime &n)|>Seq.map fst
[2..16]|>List.iter(fun n->printf $"Base %d{n}: "; rUnitP(n)|>Seq.iter(printf "%d "); printfn "")
You may also check:How to resolve the algorithm N'th step by step in the BCPL programming language
You may also check:How to resolve the algorithm Babbage problem step by step in the Ol programming language
You may also check:How to resolve the algorithm Fast Fourier transform step by step in the Common Lisp programming language
You may also check:How to resolve the algorithm Factors of an integer step by step in the Swift programming language
You may also check:How to resolve the algorithm Metaprogramming step by step in the Ring programming language