Upload files to 'Jupyter'
This commit is contained in:
parent
f455604a2c
commit
75f21a065a
117
Jupyter/ZadanieJupiter1.ipynb
Normal file
117
Jupyter/ZadanieJupiter1.ipynb
Normal file
@ -0,0 +1,117 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Algorytm Euklidesa\n",
|
||||
"\n",
|
||||
"Algorytm Euklidesa służy do obliczania __NWD__ (największego wspólnego dzielnika) dwóch liczb całkowitych.\n",
|
||||
"Został opisany przez greckiego matematyka, **Euklidesa** w jego dziele **„Elementy”**, około trzysetnego roku przed naszą erą, co sprawia, że jest jednym z najstarszych, wciąż używanych algorytmów numerycznych.\n",
|
||||
"\n",
|
||||
"## Algorytm\n",
|
||||
"\n",
|
||||
"Aby obliczyć NWD(a,b), wykonujemy kolejno następujące kroki:\n",
|
||||
"* Dzielimy z resztą liczbę a przez liczbę b\n",
|
||||
" * jeżeli reszta jest równa 0, to NWD(a,b)=b\n",
|
||||
" * jeżeli reszta jest różna od 0, to przypisujemy liczbie a wartość liczby b, liczbie b wartość otrzymanej reszty, a następnie wykonujemy ponownie punkt 1.\n",
|
||||
" \n",
|
||||
"### Przykład\n",
|
||||
"\n",
|
||||
"Wyznacz największy wspólny dzielnik liczb\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"#### Program ilustrujący działanie algorytmu Eukldesa."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 21,
|
||||
"metadata": {
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Podaj pierwszą liczbę całkowitą dodatnią: 55\n",
|
||||
"Podaj drugą liczbę całkowitą dodatnią: 20\n",
|
||||
"a = 55; b = 20\n",
|
||||
"a = 35; b = 20\n",
|
||||
"a = 20; b = 15\n",
|
||||
"a = 15; b = 5\n",
|
||||
"a = 10; b = 5\n",
|
||||
"a = 5; b = 5\n",
|
||||
"nNajwiększy wspólny dzielnik liczb 55 i 20 jest równy: 5\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ename": "SystemExit",
|
||||
"evalue": "0",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"An exception has occurred, use %tb to see the full traceback.\n",
|
||||
"\u001b[1;31mSystemExit\u001b[0m\u001b[1;31m:\u001b[0m 0\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def NWD(a, b):\n",
|
||||
" while a != b:\n",
|
||||
" a, b = max(a, b), min(a, b)\n",
|
||||
" print(\"a = {a}; b = {b}\".format(a = a, b = b))\n",
|
||||
" a = a - b\n",
|
||||
" print(\"a = {a}; b = {b}\".format(a = a, b = b))\n",
|
||||
" return a\n",
|
||||
"\n",
|
||||
"def main(args):\n",
|
||||
" a = int(input(\"Podaj pierwszą liczbę całkowitą dodatnią: \"))\n",
|
||||
" b = int(input(\"Podaj drugą liczbę całkowitą dodatnią: \"))\n",
|
||||
" print(\"nNajwiększy wspólny dzielnik liczb {a} i {b} jest równy: {NWD}\".format(a = a, b = b, NWD = NWD(a, b)))\n",
|
||||
" 50\n",
|
||||
" \n",
|
||||
" \n",
|
||||
" return 0\n",
|
||||
"\n",
|
||||
"if __name__ == '__main__':\n",
|
||||
" import sys\n",
|
||||
" sys.exit(main(sys.argv))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"##### Strony z których kożystałem\n",
|
||||
"[Obliczeniowo](https://www.obliczeniowo.com.pl/707)\n",
|
||||
"\n",
|
||||
"[Matemaks](https://www.matemaks.pl/algorytm-euklidesa.html).\n",
|
||||
"\n",
|
||||
"[Wikipedia](https://pl.wikipedia.org/wiki/Algorytm_Euklidesa).\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.8.5"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
Loading…
Reference in New Issue
Block a user