Coprime triplets: Difference between revisions
Content added Content deleted
(→{{header|Wren}}: More general.) |
(add FreeBASIC) |
||
Line 6: | Line 6: | ||
<br> Let '''p, q < 50''' |
<br> Let '''p, q < 50''' |
||
<br><br> |
<br><br> |
||
=={{header|FreeBASIC}}== |
|||
<lang freebasic>function gcd( a as uinteger, b as uinteger ) as uinteger |
|||
if b = 0 then return a |
|||
return gcd( b, a mod b ) |
|||
end function |
|||
function num_in_array( array() as integer, num as integer ) as boolean |
|||
for i as uinteger = 1 to ubound(array) |
|||
if array(i) = num then return true |
|||
next i |
|||
return false |
|||
end function |
|||
redim as integer trips(1 to 2) |
|||
trips(1) = 1 : trips(2) = 2 |
|||
dim as integer last |
|||
do |
|||
last = ubound(trips) |
|||
for q as integer = 1 to 49 |
|||
if not num_in_array( trips(), q ) _ |
|||
andalso gcd(q, trips(last)) = 1 _ |
|||
andalso gcd(q, trips(last-1)) = 1 then |
|||
redim preserve as integer trips( 1 to last+1 ) |
|||
trips(last+1) = q |
|||
continue do |
|||
end if |
|||
next q |
|||
exit do |
|||
loop |
|||
print using "Found ## terms:"; ubound(trips) |
|||
for i as integer = 1 to last |
|||
print trips(i);" "; |
|||
next i : print</lang> |
|||
{{out}} |
|||
<pre> |
|||
Found 36 terms: |
|||
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 |
|||
</pre> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |