Skip to content

Instantly share code, notes, and snippets.

@rishi-a
Created May 15, 2019 16:12
Show Gist options
  • Save rishi-a/aeda136f3d118fa2073c4b7bf2b70876 to your computer and use it in GitHub Desktop.
Save rishi-a/aeda136f3d118fa2073c4b7bf2b70876 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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