Asoslar · Bo‘luvchilar, tub sonlar, EKUB/EKUK va sanoq sistemalari
Sonlar bilan ishlash
Easy 11 masala
BoshlashNazariya
Sonning xossalari: bo‘linish, bo‘luvchilar, tub sonlar, EKUB va EKUK, sanoq sistemalari.
Bo‘luvchilar
n % i == 0 bo‘lsa, i — n ning bo‘luvchisi. Bo‘luvchilarni √n gacha izlash yetarli: i bo‘luvchi
bo‘lsa, n // i ham bo‘luvchi.
count = 0
i = 1
while i * i <= n:
if n % i == 0:
count += 1 if i * i == n else 2
i += 1
Tub sonlar
Tub son 1 dan katta va faqat 1 ga va o‘ziga bo‘linadi: 2, 3, 5, 7, 11, …
def is_prime(n):
if n < 2:
return False
i = 2
while i * i <= n:
if n % i == 0:
return False
i += 1
return True
Tub ko‘paytuvchilarga ajratish ham shunday ishlaydi: n ni i ga bo‘linguncha bo‘lib boring. Oxirida
n > 1 qolsa, u ham tub ko‘paytuvchi.
EKUB va EKUK
from math import gcd
g = gcd(a, b) # Evklid: gcd(a, b) = gcd(b, a % b)
lcm = a // g * b
Sanoq sistemalari
bin(13) # '0b1101'
int("1101", 2) # 13
digits = []
while n > 0: # istalgan asosga: qoldiqlar teskari tartibda chiqadi
digits.append(n % base)
n //= base
Butun kvadrat ildiz uchun math.isqrt(x) ishlating. int(x ** 0.5) katta sonlarda xato beradi.