Same Diagonal, Same Area, Different Boxes

The two cuboid boxes have integer dimensions that are all distinct from one another. But they both have the same diagonal length (in red) and the same surface area.

What is the least possible surface area of such boxes?

Note: Figures are not drawn to scale.


Inspired by Sum & Square Sum


The answer is 82.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

3 solutions

From the conditions in the problem, we can set up equations as:

a 2 + b 2 + c 2 = d 2 + e 2 + f 2 a^2 + b^2 + c^2 = d^2 + e^2 + f^2 for the same diagonal constraint.

2 ( a b + b c + c a ) = 2 ( d e + e f + f d ) 2(ab + bc + ca) = 2(de + ef + fd) for the same area constraint.

Adding both equations together, we will get:

a 2 + b 2 + c 2 + 2 ( a b + b c + c d ) = d 2 + e 2 + f 2 + 2 ( d e + e f + f d ) a^2 + b^2 + c^2 + 2(ab + bc + cd) = d^2 + e^2 + f^2 + 2(de + ef + fd)

( a + b + c ) 2 = ( d + e + f ) 2 (a+ b+ c)^2 = (d + e+f)^2

Because all variables are natural numbers, we can conclude a + b + c = d + e + f a + b + c = d + e + f .

With a + b + c = d + e + f a + b + c = d + e + f , we are looking for the number partition into six different numbers. Taking a , b , c , d , e , f S a, b, c, d, e, f \in S for some space set of natural numbers, if S = { 1 , 2 , 3 , 4 , 5 , 6 } S = \{1, 2, 3, 4, 5, 6\} , whose elements are as least as possible, no equal summation is possible because 1 + 2 + 3 + 4 + 5 + 6 = 21 1+2+3+4+5+6 = 21 , which can't be halved.

Hence, 7 7 must be involved in S S . Then if S = { 1 , 2 , 3 , 4 , 5 , 6 , 7 } S = \{1, 2, 3, 4, 5, 6, 7\} , we will have 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28 1+2+3+4+5+6+7 = 28 . Thus, the summation will be less than 28 2 = 14 \dfrac{28}{2} = 14 because only six numbers can be selected, and the excluded one must be even to follow the constraint.

To yield the least summation, we will attempt to examine the trials by excluding the most possible even integer. First, by taking 6 6 out, we will reach 11 = 7 + 3 + 1 = 5 + 4 + 2 11 = 7+3+1 = 5+4+2 as the only possible partition. However, 7 2 + 3 2 + 1 2 5 2 + 4 2 + 2 2 7^2 +3^2 +1^2 \neq 5^2+4^2+2^2 . It's not our desired solution.

Then by taking 4 4 out, we will reach 12 = 7 + 3 + 2 = 6 + 5 + 1 12 = 7+3+2 = 6+5+1 as the only possible partition, and 7 2 + 3 2 + 2 2 = 6 2 + 5 2 + 1 2 = 62 7^2 +3^2 +2^2 = 6^2+5^2+1^2 = 62 , which works perfectly.

As a result, the least possible total surface area equals 2 ( 7 × 3 + 3 × 2 + 2 × 7 ) = 2 ( 6 × 5 + 5 × 1 + 1 × 6 ) = 82 2(7\times 3 + 3\times 2 + 2\times 7) = 2(6\times 5 + 5\times 1 + 1\times 6) = \boxed{82} .

Saswat Prakash
Mar 23, 2020

If we observe properly then there is a very nice pattern in the solutions which is ac=df,b=d+f,e=a+c. Now if ac=df=6, (for least value) a,b,c,d,e,f=2,7,3,1,5,6; respectively so the minimum area is 2(2 7+2 3+7*3)=82...

Kyle Gray
May 9, 2018

I wrote my solution in python. At first I had the max set to 5 but after running it for 10 minutes no answers would show up, so I increased it to 20 and I got a whole bunch. So I let it run for a bit and 82 was the smallest number it came up with.

import random

allsets = []
max = 20

lowest = 10000000000

def generateSet():
    a = random.randint(1, max)
    b = a
    while b == a:
        b = random.randint(1, max)
    c = b
    while c == a or c == b:
        c = random.randint(1, max)
    d = c
    while d == a or d == b or d == c:
        d = random.randint(1, max)
    e = d
    while e == a or e == b or e == c or e == d:
        e = random.randint(1, max)
    f = e
    while f == a or f == b or f == c or f == d or f == e:
        e = random.randint(1, max)
    theset = set([a, b, c, d, e, f])
    if theset in allsets:
        return generateSet()
    else:
        allsets.append(theset)
        return [a,b,c, d,e,f]

def calculatearea(a, b, c):
    return 2*(a*b + a*c + b*c)

def calculatediagonalsq(a, b, c):
    return a**2 + b**2 + c**2

def checkarea(a,b,c, d,e,f):
    return calculatearea(a,b,c) == calculatearea(d,e,f)

def checkdiagonal(a,b,c, d,e,f):
    return calculatediagonalsq(a,b,c) == calculatediagonalsq(d,e,f)

while True:
    theset = generateSet()
    a = theset[0]
    b = theset[1]
    c = theset[2]
    d = theset[3]
    e = theset[4]
    f = theset[5]
    if checkdiagonal(a,b,c, d,e,f) and checkarea(a,b,c, d,e,f) and calculatearea(a,b,c) < lowest:
        lowest = calculatearea(a,b,c)
        print(calculatearea(a,b,c))
        print(a,b,c, d,e,f)
    if checkdiagonal(a,b,d, c,e,f) and checkarea(a,b,d, c,e,f) and calculatearea(a,b,d) < lowest:
        lowest = calculatearea(a,b,d)
        print(calculatearea(a,b,d))
        print(a,b,d, c,e,f)
    if checkdiagonal(a,b,e, d,c,f) and checkarea(a,b,e, d,c,f) and calculatearea(a,b,e) < lowest:
        lowest = calculatearea(a,b,e)
        print(calculatearea(a,b,e))
        print(a,b,e, d,c,f)
    if checkdiagonal(a,b,f, d,e,c) and checkarea(a,b,f, d,e,c) and calculatearea(a,b,f) < lowest:
        lowest = calculatearea(a,b,f)
        print(calculatearea(a,b,f))
        print(a,b,f, d,e,c)
    if checkdiagonal(a,c,d, b,e,f) and checkarea(a,c,d, b,e,f) and calculatearea(a,c,d) < lowest:
        lowest = calculatearea(a,c,d)
        print(calculatearea(a,c,d))
        print(a,c,d, b,e,f)
    if checkdiagonal(a,c,e, b,d,f) and checkarea(a,c,e, b,d,f) and calculatearea(a,c,e) < lowest:
        lowest = calculatearea(a,c,e)
        print(calculatearea(a,c,e))
        print(a,c,e, b,d,f)
    if checkdiagonal(a,c,f, b,d,e) and checkarea(a,c,f, b,d,e) and calculatearea(a,c,f) < lowest:
        lowest = calculatearea(a,c,f)
        print(calculatearea(a,c,f))
        print(a,c,f, b,d,e)
    if checkdiagonal(a,d,e, b,c,f) and checkarea(a,d,e, b,c,f) and calculatearea(a,d,e) < lowest:
        lowest = calculatearea(a,d,e)
        print(calculatearea(a,d,e))
        print(a,d,e, b,c,f)
    if checkdiagonal(a,d,f, b,c,e) and checkarea(a,d,f, b,c,e) and calculatearea(a,d,f) < lowest:
        lowest = calculatearea(a,d,f)
        print(calculatearea(a,d,f))
        print(a,d,f, b,c,e)
    if checkdiagonal(a,e,f, b,c,d) and checkarea(a,e,f, b,c,d) and calculatearea(a,e,f) < lowest:
        lowest = calculatearea(a,e,f)
        print(calculatearea(a,e,f))
        print(a,e,f, b,c,d)

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...