Call an integer a two-three integer if it is greater than 1 and has the form 2
a * 3
b, where a ≥ 0 and b ≥ 0.
Express 19992000 as a sum of two-three integers so that none of the addends divides another.
Source: Eighth Korean Mathematical Olympiad (Crux Math. Dec 1999)
The theory behind the solution:
If the two-three integers are arranged with decreasing powers of 3, they must necessarily have increasing powers of 2 so that with any pair of numbers neither will divide the other, as one will have a higher power of 3 while the other has a higher power of 2.
The program below lists all such pairings of powers where the resulting integers add to 19992000 (I assume in honor of the pseudo millennium change).
There are 31 solutions. Each row in the table shows the power of two followed by the power of three in each of the component two-three integers. For example, the first one is:
2^6*3^11 + 2^8*3^9 + 2^10*3^7 + 2^16*3^2 + 2^18*3^1 or
11337408 + 5038848 + 2239488 + 589824 + 786432 = 19992000
6 11 8 9 10 7 16 2 18 1
6 11 8 9 10 5 13 3 20 1
6 11 8 8 9 7 11 6 12 5 13 3 20 1
6 11 8 8 9 7 11 6 12 4 15 3 20 1
6 11 8 8 9 7 11 5 14 4 15 3 20 1
6 11 8 8 9 5 11 4 17 3 20 1
6 11 8 7 10 6 13 5 14 4 15 3 20 1
6 11 8 7 10 6 13 4 17 3 20 1
6 10 7 9 9 8 12 7 16 2 18 1
6 10 7 9 9 8 12 6 13 5 14 4 15 3 20 1
6 10 7 9 9 8 12 6 13 4 17 3 20 1
6 10 7 9 9 8 12 5 15 4 17 3 20 1
6 10 7 9 9 6 14 5 15 4 17 3 20 1
6 10 7 9 9 6 14 3 15 2 22 1
6 10 7 8 8 7 11 6 14 5 15 4 17 3 20 1
6 10 7 8 8 7 11 6 14 3 15 2 22 1
6 10 7 8 8 7 11 5 12 4 13 3 17 2 22 1
6 10 7 8 8 7 11 4 15 3 17 2 22 1
6 10 7 8 8 5 13 4 15 3 17 2 22 1
6 10 7 7 9 6 10 5 13 4 15 3 17 2 22 1
6 9 8 8 10 7 11 6 14 5 15 4 17 3 20 1
6 9 8 8 10 7 11 6 14 3 15 2 22 1
6 9 8 8 10 7 11 5 12 4 13 3 17 2 22 1
6 9 8 8 10 7 11 4 15 3 17 2 22 1
6 9 8 8 10 6 12 5 13 4 15 3 17 2 22 1
6 9 8 7 9 6 11 5 19 3 20 1
6 9 8 7 9 6 11 5 19 2 22 1
6 8 7 7 13 6 14 5 15 4 17 3 20 1
6 8 7 7 13 6 14 3 15 2 22 1
6 8 7 7 13 5 19 3 20 1
6 8 7 7 13 5 19 2 22 1
DefDbl A-Z
Dim crlf$, pwrs(100, 2 To 3), totSoFar, goal
Private Sub Form_Load()
Form1.Visible = True
Text1.Text = ""
crlf = Chr$(13) + Chr$(10)
goal = 19992000
pwrs(0, 2) = -1
pwrs(0, 3) = 16
addOn 1
Text1.Text = Text1.Text & crlf & " done"
End Sub
Sub addOn(wh)
If totSoFar > goal Then Exit Sub
For b = pwrs(wh - 1, 3) - 1 To 0 Step -1
For a = pwrs(wh - 1, 2) + 1 To 24
n = Int(2 ^ a * 3 ^ b + 0.5)
totSoFar = totSoFar + n
If n > goal Then totSoFar = totSoFar - n: Exit For
pwrs(wh, 2) = a: pwrs(wh, 3) = b
If totSoFar = goal Then
For i = 1 To wh
Text1.Text = Text1.Text & pwrs(i, 2) & Str(pwrs(i, 3)) & " "
Next
Text1.Text = Text1.Text & crlf
totSoFar = totSoFar - n: Exit For
End If
DoEvents
addOn wh + 1
totSoFar = totSoFar - n
Next
Next
End Sub
Edited on October 15, 2017, 4:55 pm
|
Posted by Charlie
on 2017-10-15 16:54:45 |