Composite numbers k with no single digit factors whose factors are all substrings of k: Difference between revisions
Content added Content deleted
m (→{{header|J}}) |
(Realize in F#) |
||
Line 77: | Line 77: | ||
</pre> |
</pre> |
||
=={{header|F_Sharp|F#}}== |
|||
Can anything be described as a translation of J? I use a wheel as described in J's comments, but of course I use numerical methods not euyuk! strings. |
|||
<lang fsharp> |
|||
// Composite numbers k with no single digit factors whose factors are all substrings of k. Nigel Galloway: January 28th., 2022 |
|||
let fG n g=let rec fN i g e l=match i<g,g=0L,i%10L=g%10L with (true,_,_)->false |(_,true,_)->true |(_,_,true)->fN(i/10L)(g/10L) e l |_->fN l e e (l/10L) in fN n g g (n/10L) |
|||
let fN(g:int64)=Open.Numeric.Primes.Prime.Factors g|>Seq.skip 1|>Seq.distinct|>Seq.forall(fun n->fG g n) |
|||
Seq.unfold(fun n->Some(n|>List.filter(fun(n:int64)->not(Open.Numeric.Primes.Prime.Numbers.IsPrime &n) && fN n),n|>List.map((+)210L)))([1L..2L..209L] |
|||
|>List.filter(fun n->n%3L>0L && n%5L>0L && n%7L>0L))|>Seq.concat|>Seq.skip 1|>Seq.take 20|>Seq.iter(printfn "%d") |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
15317 |
|||
59177 |
|||
83731 |
|||
119911 |
|||
183347 |
|||
192413 |
|||
1819231 |
|||
2111317 |
|||
2237411 |
|||
3129361 |
|||
5526173 |
|||
11610313 |
|||
13436683 |
|||
13731373 |
|||
13737841 |
|||
13831103 |
|||
15813251 |
|||
17692313 |
|||
19173071 |
|||
28118827 |
|||
Real: 00:00:26.059 |
|||
</pre> |
|||
=={{header|J}}== |
=={{header|J}}== |
||
<lang J> */2 3 5 7 |
<lang J> */2 3 5 7 |
||
210 |
210 |