Created
May 15, 2019 16:12
-
-
Save rishi-a/aeda136f3d118fa2073c4b7bf2b70876 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#Problem 9" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"31875000.0\n" | |
] | |
} | |
], | |
"source": [ | |
"import math\n", | |
"def f1():\n", | |
" for a in range(1,999):\n", | |
" for b in range(a,999):\n", | |
" c = math.sqrt(a**2+b**2)\n", | |
" if(a+b+c == 1000):\n", | |
" print(a*b*c) #31875000\n", | |
"f1()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"1.05 s ± 36 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" | |
] | |
} | |
], | |
"source": [ | |
"f1_time = %timeit -o f1()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"31875000.0\n" | |
] | |
} | |
], | |
"source": [ | |
"def f2():\n", | |
" for a in range(1,334):\n", | |
" for b in range(a,500):\n", | |
" c = math.sqrt(a**2+b**2)\n", | |
" if(a+b+c == 1000):\n", | |
" print(a*b*c) #31875000\n", | |
"f2()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"31875000.0\n", | |
"269 ms ± 27.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" | |
] | |
} | |
], | |
"source": [ | |
"f2_time = %timeit -o f2() #74% faster" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"31875000\n" | |
] | |
} | |
], | |
"source": [ | |
"def f3():\n", | |
" for a in range(1,1000):\n", | |
" c_plus_b = 1000-a;\n", | |
" c_minus_b = a*a / c_plus_b;\n", | |
" c = int((c_plus_b + c_minus_b) / 2);\n", | |
" b = int((c_plus_b - c_minus_b) / 2);\n", | |
" if (a*a + b*b == c*c and a < b and b < c):\n", | |
" print (a*b*c)\n", | |
"f3()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"31875000\n", | |
"1.93 ms ± 277 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" | |
] | |
} | |
], | |
"source": [ | |
"f3_time = %timeit -o f3()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#99.8% faster then original" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment