Coprime triplets: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: adjusted computation of maximum width of a column entry.) |
(Add Factor) |
||
Line 6: | Line 6: | ||
<br> Let '''p, q < 50''' |
<br> Let '''p, q < 50''' |
||
<br><br> |
<br><br> |
||
=={{header|Factor}}== |
|||
{{works with|Factor|0.99 2021-02-05}} |
|||
<lang factor>USING: combinators.short-circuit.smart formatting grouping io |
|||
kernel make math prettyprint sequences sets ; |
|||
: coprime? ( m n -- ? ) simple-gcd 1 = ; |
|||
: coprime-both? ( m n o -- ? ) '[ _ coprime? ] both? ; |
|||
: triplet? ( hs m n o -- ? ) |
|||
{ [ coprime-both? nip ] [ 2nip swap in? not ] } && ; |
|||
: next ( hs m n -- hs' m' n' ) |
|||
0 [ 4dup triplet? ] [ 1 + ] until |
|||
nipd pick [ adjoin ] keepd ; |
|||
: (triplets-upto) ( n -- ) |
|||
[ HS{ 1 2 } clone 1 , 1 2 ] dip |
|||
'[ 2dup [ _ < ] both? ] [ dup , next ] while 3drop ; |
|||
: triplets-upto ( n -- seq ) [ (triplets-upto) ] { } make ; |
|||
"Coprime triplets under 50:" print |
|||
50 triplets-upto |
|||
[ 9 group simple-table. nl ] |
|||
[ length "Found %d terms.\n" printf ] bi</lang> |
|||
{{out}} |
|||
<pre> |
|||
Coprime triplets under 50: |
|||
1 2 3 5 4 7 9 8 11 |
|||
13 6 17 19 10 21 23 16 15 |
|||
29 14 25 27 22 31 35 12 37 |
|||
41 18 43 47 20 33 49 26 45 |
|||
Found 36 terms. |
|||
</pre> |
|||
=={{header|FreeBASIC}}== |
=={{header|FreeBASIC}}== |