randRange(2,7) randRange(2,7) randRange(2,7) LENGTH * WIDTH * HEIGHT getPrimeFactorization(VOL) _.map(FACTORIZATION, function(factor, step){ var remain = VOL; _.each(FACTORIZATION.slice(0, step), function(n) { remain /= n; }) return remain; })

The post office does not sell any boxes which have a side length longer than 10 centimeters. I bought a box from the post office that has a volume of VOL cubic centimeters.

What could be the dimensions of my box?

Length = cm
Width \hphantom{ }= cm
Height = cm
[$("input#response1").val(),$("input#response2").val(),$("input#response3").val()]
var lengthMessage = null, lengthEmpty = false; var LengthValidator = Khan.answerTypes.predicate.createValidatorFunctional(function(length, error) { if (length > 10) { return false; } var heightMessage = null, heightEmpty = false; var WidthValidator = Khan.answerTypes.predicate.createValidatorFunctional(function(width, error) { if (width > 10) { return false; } var HeightValidator = Khan.answerTypes.predicate.createValidatorFunctional(function(height, error) { if (height > 10) { return false; } return Math.abs(length * width * height - VOL) < Math.pow(2, -42); }, {forms: 'integer, proper, improper, mixed, decimal'}); var heightResult = HeightValidator(guess[2]); if (heightResult.empty) { heightEmpty = true; } if (heightResult.message !== null) { heightMessage = heightResult.message; } if (heightResult.correct) { heightEmpty = false; heightMessage = null; } return heightResult.correct; }, {forms: 'integer, proper, improper, mixed, decimal'}); var widthResult = WidthValidator(guess[1]); if (widthResult.empty || heightEmpty) { lengthEmpty = true; } if (widthResult.message !== null || heightMessage !== null) { lengthMessage = widthResult.message || heightMessage; } if (widthResult.correct) { lengthEmpty = false; lengthMessage = null; } return widthResult.correct; }, {forms: 'integer, proper, improper, mixed, decimal'}); var lengthResult = LengthValidator(guess[0]); // TODO(emily): In the future, when validator-functions can return empty and // message separately, make this actually work if (lengthResult.empty || lengthEmpty) { return ""; } else if (lengthResult.message !== null) { return lengthResult.message; } else if (lengthMessage !== null) { return lengthMessage; } return lengthResult.correct;
graph.cx = 0; graph.y = 0; graph.curr = VOL; init({ range: [[-1, FACTORIZATION.length + 1], [-2 * FACTORIZATION.length - 0.5, 1]], scale: [30, 30] }); label([graph.cx + 1, graph.y], graph.curr);

We can use a factor tree to break VOL into its prime factorization. Which of the prime numbers divides into VOL?

path([[graph.cx + 1, graph.y - 0.5], [graph.cx, graph.y - 1.5]]); path([[graph.cx + 1, graph.y - 0.5], [graph.cx + 2, graph.y - 1.5]]); graph.y -= 2; graph.cx += 1; graph.curr = graph.curr / FACTOR; label([graph.cx - 1, graph.y], FACTOR, { color: BLUE }); circle([graph.cx - 1, graph.y], 0.5); graph.lastLabel = label([graph.cx + 1, graph.y], graph.curr);

REMAINING[I] is divisible by \blue{FACTOR}, leaving us with REMAINING[I] / FACTOR.

circle([graph.cx + 1, graph.y], 0.5); graph.lastLabel.remove(); label([graph.cx + 1, graph.y], graph.curr, { color: BLUE });

\blue{FACTORIZATION[FACTORIZATION.length - 1]} is prime, so we're done factoring.

So the prime factors of VOL are:

\qquadFACTORIZATION.join("\\space\\color{black}{\\times}\\space")

So the dimensions of the package should be FACTORIZATION[0], FACTORIZATION[1] and FACTORIZATION[2].

We can find the dimensions of the package by arranging the factors into three groups of products, all less than 10.

One solution would be: (getPrimeFactorization(WIDTH).join("\\space\\color{black}{\\times}\\space")), (getPrimeFactorization(LENGTH).join("\\space\\color{black}{\\times}\\space")) and (getPrimeFactorization(HEIGHT).join("\\space\\color{black}{\\times}\\space"))

So the dimensions of the box could be WIDTH, LENGTH and HEIGHT.

randRange(2,12) randRange(2,12) randRange(2,12) randRange(1,L1-1) randRange(1,W1-1) randRange(1,H1-1) max(max(L1,W1),H1) BLUE [ [L1/MAX,W1/MAX,-H1/MAX], [-L1/MAX,W1/MAX,-H1/MAX], [-L1/MAX,-W1/MAX,-H1/MAX], [L1/MAX,-W1/MAX,-H1/MAX], [L1/MAX,W1/MAX,H1/MAX], [-L1/MAX,W1/MAX,H1/MAX], [-L1/MAX,-W1/MAX,H1/MAX], [L1/MAX,-W1/MAX,H1/MAX], [(-L1+2*L2)/MAX,-W1/MAX,-H1/MAX], [(2*L2-L1)/MAX,(2*W2-W1)/MAX,-H1/MAX], [-L1/MAX,(2*W2-W1)/MAX,-H1/MAX], [-L1/MAX,-W1/MAX,(2*H2-H1)/MAX], [(-L1+2*L2)/MAX,-W1/MAX,(2*H2-H1)/MAX], [(2*L2-L1)/MAX,(2*W2-W1)/MAX,(2*H2-H1)/MAX], [-L1/MAX,(2*W2-W1)/MAX,(2*H2-H1)/MAX] ] 4.0 [ { verts: [0, 3, 2, 1], color: COLOR }, { verts: [5, 6, 7, 4], color: COLOR }, { verts: [4,7,3,0], color: COLOR }, { verts: [5,1,2,6], color: COLOR }, { verts: [5, 4, 0, 1], color: COLOR }, { verts: [6, 2, 3, 7], color: COLOR } ] metricUnits[0]

A water tank is a rectangular prism that is H1 plural_form(METERS, H1) high, L1 plural_form(METERS, L1) long, and W1 plural_form(METERS, W1) wide. A solid metal box which is H2 plural_form(METERS, H2) high, L2 plural_form(METERS, L2) long, and W2 plural_form(METERS, W2) wide is sitting inside the tank. The tank is filled with water.

What is the volume of the water in the tank?

L1*W1*H1 - L2*W2*H2 cubic UNIT

init({range: [[-2, 2], [-2, 2]], scale: [100, 100]}); addMouseLayer(); // graphing the initial object graph.obj = make3dObject(VERTICES, { scale: SCALE }); _.each(FACES, function(face) { graph.obj.addFace(face); }); graph.obj.addSketch( {verts: [8,9,10,2]} ); graph.obj.addSketch( {verts: [11,12,13,14,11]} ); graph.obj.addSketch( {verts: [2,11]} ); graph.obj.addSketch( {verts: [8,12]} ); graph.obj.addSketch( {verts: [9,13]} ); graph.obj.addSketch( {verts: [10,14]} ); graph.obj.setPos([0, 0, 5]); graph.obj.rotate(1,0 , 0, PI/3); graph.obj.rotate(0, 1, 0, 0); graph.obj.rotate(0, 0, 1, PI/8); graph.obj.doDraw(); var mouseTarget = mouselayer.rect(0, 0, 400, 400).attr({ fill: "#000", opacity: 0.0 }); $(mouseTarget[0]).bind("vmousedown", function(event) { event.preventDefault(); graph.lastX = event.pageX; graph.lastY = event.pageY; $(document).bind("vmousemove vmouseup", function(event) { event.preventDefault(); var dx = (event.pageX - graph.lastX) / 200 * PI; var dy = (event.pageY - graph.lastY) / 200 * PI; graph.lastX = event.pageX; graph.lastY = event.pageY; var xAxis = normalize(graph.obj.perspective[1]); var yAxis = normalize(graph.obj.perspective[0]); graph.obj.rotate(xAxis[0], xAxis[1], xAxis[2], -dx / 2); graph.obj.rotate(yAxis[0], yAxis[1], yAxis[2], -dy / 2); graph.obj.doDraw(); if (event.type === "vmouseup") { $(document).unbind("vmousemove vmouseup"); } }) });

The tank has a volume of H1 \times L1 \times W1 = H1 * L1 * W1 cubic plural_form(METERS, H1 * L1 * W1), and the metal box has a volume of H2 \times L2 \times W2 = H2 * W2 * L2 cubic plural_form(METERS, H2 * L2 * W2).

Since there is no water in the box, the volume of the water in the tank is the volume of the tank minus the volume of the metal box.

The volume of the water in the tank is H1 * L1 * W1 \text{UNIT}^3 - H2 * L2 * W2 \text{UNIT}^3 = H1 * L1 * W1 - H2 * L2 * W2\text{UNIT}^3

randRange(2, 10, 6) _.reduce([L1, W1, H1, L2, W2, H2], function(a, b) { return max(a, b); }) _.map([L1, W1, H1, L2, W2, H2], function(n) { return n / MAX; }) L1 * W1 * H1 L2 * W2 * H2 "#D7ED3A" "#38C77F" "#78D0EF" [ [ 0, W1N, 0], [-L1N*2, W1N, 0], [-L1N*2, -W1N, 0], [ 0, -W1N, 0], [ 0, W1N, H1N * 2], [-L1N*2, W1N, H1N * 2], [-L1N*2, -W1N, H1N * 2], [ 0, -W1N, H1N * 2], [ 0, W2N, 0], [ L2N*2, W2N, 0], [ L2N*2, -W2N, 0], [ 0, -W2N, 0], [ 0, W2N, H2N * 2], [ L2N*2, W2N, H2N * 2], [ L2N*2, -W2N, H2N * 2], [ 0, -W2N, H2N * 2] ] 3.0 [ { verts: [0, 3, 2, 1], color: COLOR1 }, { verts: [5, 6, 7, 4], color: COLOR1 }, { verts: [4, 7, 3, 0], color: COLOR2 }, { verts: [5, 1, 2, 6], color: COLOR2 }, { verts: [5, 4, 0, 1], color: COLOR3 }, { verts: [6, 2, 3, 7], color: COLOR3 }, { verts: [9, 10, 11, 8], color: COLOR1 }, { verts: [12, 15, 14, 13], color: COLOR1 }, { verts: [8, 11, 15, 12], color: COLOR2 }, { verts: [14, 10, 9, 13], color: COLOR2 }, { verts: [9, 8, 12, 13], color: COLOR3 }, { verts: [15, 11, 10, 14], color: COLOR3 } ] metricUnits[0]

I made a fort for my pet gorilla by connecting two boxes. The first box is L1 plural_form(METERS, L1) long, W1 plural_form(METERS, W1) wide and H1 plural_form(METERS, H1) high. The second box is L2 plural_form(METERS, L2) long, W2 plural_form(METERS, W2) wide and H2 plural_form(METERS, H2) high.

How many cubic plural_form(METERS, 2) of space does my gorilla have to play in her fort?

VOL1 + VOL2 cubic UNIT

init({range: [[-2, 2], [-2, 2]], scale: [100, 100]}); addMouseLayer(); // graphing the initial object graph.obj = make3dObject(VERTICES, { scale: SCALE }); _.each(FACES, function(face) { graph.obj.addFace(face); }); graph.obj.addSketch( {verts: [0, 3, 2, 1] } ); graph.obj.addSketch( {verts: [5, 6, 7, 4] } ); graph.obj.addSketch( {verts: [4, 7, 3, 0] } ); graph.obj.addSketch( {verts: [5, 1, 2, 6] } ); graph.obj.addSketch( {verts: [5, 4, 0, 1] } ); graph.obj.addSketch( {verts: [6, 2, 3, 7] } ); graph.obj.addSketch( {verts: [8, 11, 10, 9] } ); graph.obj.addSketch( {verts: [13, 14, 15, 12] } ); graph.obj.addSketch( {verts: [12, 15, 11, 8] } ); graph.obj.addSketch( {verts: [13, 9, 10, 14] } ); graph.obj.addSketch( {verts: [13, 12, 8, 9] } ); graph.obj.addSketch( {verts: [14, 10, 11, 15] } ); graph.obj.setPos([0, 0, 5]); graph.obj.rotate(1,0 , 0, PI/3); graph.obj.rotate(0, 1, 0, 0); graph.obj.rotate(0, 0, 1, PI/8); graph.obj.doDraw(); var mouseTarget = mouselayer.rect(0, 0, 400, 400).attr({ fill: "#000", opacity: 0.0 }); $(mouseTarget[0]).bind("vmousedown", function(event) { event.preventDefault(); graph.lastX = event.pageX; graph.lastY = event.pageY; $(document).bind("vmousemove vmouseup", function(event) { event.preventDefault(); var dx = (event.pageX - graph.lastX) / 200 * PI; var dy = (event.pageY - graph.lastY) / 200 * PI; graph.lastX = event.pageX; graph.lastY = event.pageY; var xAxis = normalize(graph.obj.perspective[1]); var yAxis = normalize(graph.obj.perspective[0]); graph.obj.rotate(xAxis[0], xAxis[1], xAxis[2], -dx / 2); graph.obj.rotate(yAxis[0], yAxis[1], yAxis[2], -dy / 2); graph.obj.doDraw(); if (event.type === "vmouseup") { $(document).unbind("vmousemove vmouseup"); } }) });

The first box has a volume of H1 \times L1 \times W1 = VOL1 cubic plural_form(METERS, VOL1). The second box has a volume of H2 \times L2 \times W2 = VOL2 cubic plural_form(METERS, VOL2)

Since my gorilla can play in both boxes, we need to add the volumes of the two boxes.

The total amount of space my gorilla has to play is VOL1 \text{UNIT}^3 + VOL2 \text{UNIT}^3 = VOL1 + VOL2\text{UNIT}^3

10 CONVERSION * CONVERSION * CONVERSION rand(2) metricUnits[UNITS] [ [i18n._("dm"), new Plural(function(num) { return i18n.ngettext("decimeter", "decimeters", num); })], [i18n._("mm"), new Plural(function(num) { return i18n.ngettext("millimeter", "millimeters", num); })] ][UNITS] randRangeExclude(2, 11,[3,10]) CONVERSION CONVERSION CONVERSION CONVERSION LENGTH/MAX WIDTH/MAX HEIGHT/MAX "#D7ED3A" "#38C77F" "#78D0EF" "#F0B63A" HEIGHT * 2 [ [LENGTH/MAX, WIDTH/MAX, HEIGHT/MAX], [LENGTH/MAX, WIDTH/MAX, -HEIGHT/MAX], [LENGTH/MAX, -WIDTH/MAX, -HEIGHT/MAX], [LENGTH/MAX, -WIDTH/MAX, HEIGHT/MAX], [-LENGTH/MAX, WIDTH/MAX, HEIGHT/MAX], [-LENGTH/MAX, WIDTH/MAX, -HEIGHT/MAX], [-LENGTH/MAX, -WIDTH/MAX, -HEIGHT/MAX], [-LENGTH/MAX, -WIDTH/MAX, HEIGHT/MAX] ] 4.0 [ { verts: [3, 2, 1, 0], color: COLOR1, labels: [[[XBORD, 0, ZBORD], "1 \\text{" + FROM_TEXT + "} = " + CONVERSION + " \\text{" + TO_TEXT + "}"]] }, { verts: [4, 5, 6, 7], color: COLOR1, labels: [[[XBORD, 0, ZBORD], "1 \\text{" + FROM_TEXT + "} = " + CONVERSION + " \\text{" + TO_TEXT + "}"]], }, { verts: [0, 1, 5, 4], color: COLOR3, labels: [[[0, YBORD, ZBORD], "1 \\text{" + FROM_TEXT + "} = " + CONVERSION + " \\text{" + TO_TEXT + "}"]] }, { verts: [2, 3, 7, 6], color: COLOR3, labels: [[[0, YBORD, ZBORD], "1 \\text{" + FROM_TEXT + "} = " + CONVERSION + " \\text{" + TO_TEXT + "}"]] }, { verts: [1, 2, 6, 5], color: COLOR2, labels: [[[XBORD, YBORD, 0], "1 \\text{" + FROM_TEXT + "} = " + CONVERSION + " \\text{" + TO_TEXT + "}"]] }, { verts: [3, 0, 4, 7], color: COLOR2, labels: [[[XBORD, YBORD, 0], "1 \\text{" + FROM_TEXT + "} = " + CONVERSION + " \\text{" + TO_TEXT + "}"]] } ]

How many cubic plural_form(TO) fit in VOL cubic plural_form(FROM, VOL)?

VOL * CONVERSION_CUBED cubic plural_form(TO)

First we will figure out how many cubic plural_form(TO) fit in one cubic FROM.

There are CONVERSION plural_form(TO, CONVERSION) in every FROM.

So a cubic FROM is the same as a CONVERSION \text{ TO_TEXT} \times CONVERSION \text{ TO_TEXT} \timesCONVERSION \text{ TO_TEXT} cube.

init({range: [[-2, 2], [-2, 2]], scale: [100, 100]}); addMouseLayer(); //Adding verticies for the slabs for (var i = 1; i < HEIGHT;i++ ){ VERTICES.push( [LENGTH/MAX,WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([-LENGTH/MAX,WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([-LENGTH/MAX,-WIDTH/MAX,(-HEIGHT+2*i)/MAX]); VERTICES.push([LENGTH/MAX,-WIDTH/MAX,(-HEIGHT+2*i)/MAX]); }; //Adding verticies for the cubes in one slab for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,-WIDTH/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,WIDTH/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(-LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,-WIDTH/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < LENGTH; i++ ){ VERTICES.push( [(-LENGTH+2*i)/MAX,WIDTH/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(-LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT+2)/MAX]); }; for (var i = 1; i < WIDTH; i++ ){ VERTICES.push( [(LENGTH)/MAX,(-WIDTH+2*i)/MAX,(-HEIGHT+2)/MAX]); }; // graphing the initial object graph.obj = make3dObject(VERTICES, { scale: SCALE }); _.each(FACES, function(face) { graph.obj.addFace(face); }); graph.obj.setPos([0, 0, 5]); graph.obj.rotate(1,0 , 0, PI/3); graph.obj.rotate(0, 1, 0, 0); graph.obj.rotate(0, 0, 1, PI/8); graph.obj.doDraw(); var mouseTarget = mouselayer.rect(0, 0, 400, 400).attr({ fill: "#000", opacity: 0.0 }); $(mouseTarget[0]).bind("vmousedown", function(event) { graph.lastX = event.pageX; graph.lastY = event.pageY; $(document).bind("vmousemove vmouseup", function(event) { event.preventDefault(); var dx = (event.pageX - graph.lastX) / 200 * PI; var dy = (event.pageY - graph.lastY) / 200 * PI; graph.lastX = event.pageX; graph.lastY = event.pageY; var xAxis = normalize(graph.obj.perspective[1]); var yAxis = normalize(graph.obj.perspective[0]); graph.obj.rotate(xAxis[0], xAxis[1], xAxis[2], -dx / 2); graph.obj.rotate(yAxis[0], yAxis[1], yAxis[2], -dy / 2); graph.obj.doDraw(); if (event.type === "vmouseup") { $(document).unbind("vmousemove vmouseup"); } }) });

There are CONVERSION \times CONVERSION \times CONVERSION = CONVERSION_CUBED \text{ TO_TEXT}^3 in each cubic FROM, by the volume formula.

Since we have VOL cubic plural_form(FROM, VOL), and each cubic FROM holds CONVERSION_CUBED cubic plural_form(TO, CONVERSION_CUBED), we have a total of VOL \times CONVERSION_CUBED cubic plural_form(TO, VOL * CONVERSION_CUBED).

So VOL * CONVERSION_CUBED cubic plural_form(TO, VOL * CONVERSION_CUBED) fit in VOL cubic plural_form(FROM, VOL).