Ormiston pairs: Difference between revisions

Content added Content deleted
m (C++ - simplified code)
Line 197: Line 197:
let rec fG n g=if g<10 then i[g]<-n i[g] 1 else i[g%10]<-n i[g%10] 1; fG n (g/10)
let rec fG n g=if g<10 then i[g]<-n i[g] 1 else i[g%10]<-n i[g%10] 1; fG n (g/10)
fG (+) n; fG (-) g; Array.forall ((=)0) i
fG (+) n; fG (-) g; Array.forall ((=)0) i
primes32()|>Seq.pairwise|>Seq.filter fG|>Seq.take 30|>Seq.iter(printf "%A "); printfn ""
let oPairs n=n|>Seq.pairwise|>Seq.filter fG
printfn $"<1 million: %d{primes32()|>Seq.takeWhile((>)1000000)|>Seq.pairwise|>Seq.filter fG|>Seq.length}"
primes32()|>oPairs|>Seq.take 30|>Seq.iter(printf "%A "); printfn ""
printfn $"<10 million: %d{primes32()|>Seq.takeWhile((>)10000000)|>Seq.pairwise|>Seq.filter fG|>Seq.length}"
printfn $"<1 million: %d{primes32()|>Seq.takeWhile((>)1000000)|>oPairs|>Seq.length}"
printfn $"<100 million: %d{primes32()|>Seq.takeWhile((>)100000000)|>Seq.pairwise|>Seq.filter fG|>Seq.length}"
printfn $"<10 million: %d{primes32()|>Seq.takeWhile((>)10000000)|>oPairs|>Seq.length}"
printfn $"<1 billion: %d{primes32()|>Seq.takeWhile((>)1000000000)|>Seq.pairwise|>Seq.filter fG|>Seq.length}"
printfn $"<100 million: %d{primes32()|>Seq.takeWhile((>)100000000)|>oPairs|>Seq.length}"
printfn $"<1 billion: %d{primes32()|>Seq.takeWhile((>)1000000000)|>oPairs|>Seq.length}"
</syntaxhighlight>
</syntaxhighlight>
{{out}}
{{out}}