Më poshtë është një përshkrim se si të llogaritet dhe të merret pjesëtuesi më i madh i përbashkët dhe shumëfishi më i vogël i përbashkët në Python.
- Pjesëtuesi më i madh i përbashkët dhe shumëfishi më i vogël i përbashkët i dy numrave të plotë
- Pjesëtuesi më i madh i përbashkët dhe shumëfishi më i vogël i përbashkët i tre ose më shumë numrave të plotë
Vini re se specifikimet e funksioneve të ofruara në bibliotekën standarde ndryshojnë në varësi të versionit të Python. Një shembull i zbatimit të një funksioni që nuk është në bibliotekën standarde është paraqitur gjithashtu në këtë artikull.
- Python 3.4 ose më i hershëm
- GCD:
fractions.gcd()
(vetëm dy argumente)
- GCD:
- Python 3.5 ose më vonë
- GCD:
math.gcd()
(vetëm dy argumente)
- GCD:
- Python 3.9 ose më vonë
- GCD:
math.gcd()
(mbështet më shumë se tre argumente) - emëruesi më i vogël i përbashkët:
math.lcm()
(mbështet më shumë se tre argumente)
- GCD:
Këtu shpjegojmë metodën duke përdorur bibliotekën standarde Python; NumPy mund të përdoret lehtësisht për të llogaritur pjesëtuesin më të madh të përbashkët dhe shumëfishin më të vogël të përbashkët për çdo element të vargjeve të shumta.
Pjesëtuesi më i madh i përbashkët dhe shumëfishi më i vogël i përbashkët i dy numrave të plotë
GCD
Që nga Python 3.5, ekziston një funksion gcd() në modulin e matematikës. gcd () është një akronim për
- greatest common divisor
Rikthen pjesëtuesin më të madh të përbashkët të numrit të plotë të specifikuar në argument.
import math
print(math.gcd(6, 4))
# 2
Vini re se në Python 3.4 dhe më herët, funksioni gcd() është në modulin e fraksioneve, jo në modulin e matematikës. fraksionet duhet të importohen dhe fraksionet.gcd().
emëruesi më i vogël i përbashkët
Funksioni lcm(), i cili kthen shumëfishin më të vogël të përbashkët, u shtua në modulin e matematikës në Python 3.9. lcm është një akronim për
- least common multiple
Kthen shumëfishin më të vogël të përbashkët të numrit të plotë të specifikuar në argument.
print(math.lcm(6, 4))
# 12
Përpara Python 3.8, lcm() nuk ofrohet, por mund të llogaritet lehtësisht duke përdorur gcd().
lcm(a, b) = a * b / gcd(a, b)
Shembull i zbatimit.
def my_lcm(x, y):
return (x * y) // math.gcd(x, y)
print(my_lcm(6, 4))
# 12
/
Meqenëse kjo rezulton në një notim dhjetor, përdoren dy vija të pasme për të shkurtuar pikën dhjetore dhe për të kthyer një rezultat të ndarjes së numrit të plotë. Vini re se nuk bëhet asnjë përpunim për të përcaktuar nëse argumenti është një numër i plotë apo jo.
Pjesëtuesi më i madh i përbashkët dhe shumëfishi më i vogël i përbashkët i tre ose më shumë numrave të plotë
Python 3.9 ose më vonë
Duke filluar me Python 3.9, të gjitha funksionet e mëposhtme mbështesin më shumë se tre argumente.
math.gcd()
math.lcm()
print(math.gcd(27, 18, 9))
# 9
print(math.gcd(27, 18, 9, 3))
# 3
print(math.lcm(27, 9, 3))
# 27
print(math.lcm(27, 18, 9, 3))
# 54
*
Nëse dëshironi të llogaritni pjesëtuesin më të madh të përbashkët ose shumëfishin më të vogël të përbashkët të elementeve të një liste, specifikoni argumentin me këtë.
l = [27, 18, 9, 3]
print(math.gcd(*l))
# 3
print(math.lcm(*l))
# 54
Python 3.8 ose më i hershëm
Përpara Python 3.8, funksioni gcd() mbështeti vetëm dy argumente.
Për të gjetur pjesëtuesin më të madh të përbashkët ose shumëfishin më të vogël të përbashkët të tre ose më shumë numrave të plotë, nuk kërkohet asnjë algoritëm veçanërisht i ndërlikuar; thjesht llogarisni pjesëtuesin më të madh të përbashkët ose shumëfishin më të vogël të përbashkët për secilën prej vlerave të shumëfishta me radhë duke përdorur funksionin e rendit më të lartë reduce().
GCD
from functools import reduce
def my_gcd(*numbers):
return reduce(math.gcd, numbers)
print(my_gcd(27, 18, 9))
# 9
print(my_gcd(27, 18, 9, 3))
# 3
l = [27, 18, 9, 3]
print(my_gcd(*l))
# 3
Përsëri, vini re se përpara Python 3.4, funksioni gcd() është në modulin e fraksionit, jo në modulin e matematikës.
emëruesi më i vogël i përbashkët
def my_lcm_base(x, y):
return (x * y) // math.gcd(x, y)
def my_lcm(*numbers):
return reduce(my_lcm_base, numbers, 1)
print(my_lcm(27, 9, 3))
# 27
print(my_lcm(27, 18, 9, 3))
# 54
l = [27, 18, 9, 3]
print(my_lcm(*l))
# 54