Asosiy tarkibga o‘tish
CodeArena
Kirish
Kurslar

Asoslar · Bo‘luvchilar, tub sonlar, EKUB/EKUK va sanoq sistemalari

Sonlar bilan ishlash

Easy 11 masala

Boshlash

Nazariya

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.

Beginner masalalar 1

Easy masalalar 8

Medium masalalar 2

Menyu

Ko‘rinish

Klaviatura yorliqlari

Ctrl K yoki /
Qidirish va buyruqlar
g h
Bosh sahifa
g p
Masalalar
g c
Musobaqalar
g r
Reyting
Ctrl Enter
Masala sahifasida — yechimni yuborish
?
Shu oyna