Məzmuna keç
Educora
Orta8–9-cu sinif25 dəq32 / 59

Ədədlər üzərində əməllər: rəqəmlər, bölənlər və sadə ədədlər

Ədədi `n % 10` və `n // 10` ilə rəqəmlərinə ayırmaq; rəqəmlərin cəmini, hasilini, sayını və tərs ədədi tapmaq; bölənləri saymaq, sadə ədədi və tam kvadratı yoxlamaq; ƏBOB-u Evklid alqoritmi ilə hesablamaq. DİM tapşırıqları üçün hazır şablonlar.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • n % 10 və n // 10 ilə ədədin rəqəmlərini ayırmaq, onların cəmini, hasilini, sayını və tərs ədədi tapmaq
  • bölənləri saymaq və toplamaq, ədədin sadə və ya tam kvadrat olduğunu yoxlamaq
  • ƏBOB və ƏKOB-u Evklid alqoritmi ilə, 1 + 1/2 + … + 1/n kimi cəmləri isə dövrlə hesablamaq
  • parçadakı bütün ədədləri iç-içə dövrlərlə yoxlamaq və DİM tapşırıqlarında hazır şablonları tanımaq

Bank kartının nömrəsi düzgün yığılıbmı? Bunu yoxlayan alqoritm nömrəni rəqəm-rəqəm ayırır, rəqəmləri toplayır və qalığa baxır. DİM-in hər informatika variantında «Dövr operatoru. Ədədlər üzərində əməllər» mövzusundan 3–4 tapşırıq olur, 2025–2026-cı illərin dörd variantından üçündə isə yazılı proqramlardan biri də bu mövzudan idi. Yaxşı xəbər: bu tapşırıqların demək olar hamısı bir neçə hazır şablondan qurulur — rəqəm dövrü, bölən dövrü və Evklid alqoritmi. Bu dərs «Dövr operatorları: for, while, dövr addımı, break, continue və iç-içə dövrlər» dərsinin davamıdır.

Rəqəmlərin ayrılması: n % 10 və n // 10

Onluq say sistemində ədədin son rəqəmi onun 10-a bölünməsindən alınan qalıqdır, 10-a tam bölmə isə həmin rəqəmi atır: 5682 % 10 = 2, 5682 // 10 = 568. Bu iki əməli dövrdə təkrarlasaq, rəqəmləri sağdan sola bir-bir alarıq; ədəd 0 olanda rəqəmlər bitir.

d = n % 10 n = n // 10
burada:
  • dson rəqəm (0…9)
  • %bölmədən qalıq
  • //tam bölmə: kəsr hissə atılır, ədəd bir rəqəm qısalır

Rəqəm dövrünün iki əsas əmri. Dövr while n > 0: şərti ilə işləyir.

n // pow(10, k) % 10 n % pow(10, k) n // pow(10, k)
burada:
  • n // pow(10, k) % 10sağdan k-cı rəqəm (k = 0 — təkliklər, 1 — onluqlar, 2 — yüzlüklər)
  • n % pow(10, k)son k rəqəmdən düzələn ədəd
  • n // pow(10, k)son k rəqəm atılandan sonra qalan ədəd

Dövrsüz istənilən rəqəmi götürmək olar: 5682 // 100 % 10 = 6, 5682 % 100 = 82, 5682 // 1000 = 5.

Nümunə 1. Rəqəmləri götürmək

Hesablayın: 1) 7049 % 10 və 7049 // 10; 2) 7049 ədədinin onluqlar və yüzlüklər rəqəmi; 3) 30 % 10 və 30 // 10.

Həllini göstər
1) 7049 = 704 · 10 + 9, deməli 7049 % 10 = 9, 7049 // 10 = 704.
2) Onluqlar: 7049 // 10 % 10 = 704 % 10 = 4. Yüzlüklər: 7049 // 100 % 10 = 70 % 10 = 0.
3) 30 % 10 = 0, 30 // 10 = 3. Son rəqəm 0 ola bilər — rəqəm dövrü onu da sayır.
  1. 1
    Nüsxəni saxla

    Dövrdə n dəyişib 0 olacaq. İlkin ədəd sonra lazımdırsa, əvvəlcə m = n yaz.

  2. 2
    Başlanğıc qiymətlər

    cəm s = 0, hasil p = 1, say c = 0, tərs ədəd r = 0.

  3. 3
    Dövrün şərti

    while n > 0: — rəqəm qaldıqca.

  4. 4
    Rəqəmi götür və işlə

    d = n % 10, sonra s = s + d, p = p * d, c = c + 1, r = r * 10 + d və ya şərt: if d % 2 == 0:.

  5. 5
    Rəqəmi at

    n = n // 10. Bu sətir unudulsa, dövr sonsuz olar.

Python
n = 5682
s = 0
p = 1
c = 0
r = 0
while n > 0:
    d = n % 10
    s = s + d
    p = p * d
    c = c + 1
    r = r * 10 + d
    n = n // 10
print(s, p, c, r)
▸ Gözlənilən nəticə
21 480 4 2865
Rəqəmlərin cəmi, hasili, sayı və tərs ədəd bir dövrdə. İmtahan proqramında birinci sətir n = int(input()) olur; burada qiyməti dəyişənə yazmışıq ki, proqram brauzerdə işləsin.
Python
x = 3704
k = 0
m = x
while x > 0:
    if x % 10 % 2 == 0:
        k = k + 1
    x = x // 10
print(m * 10 + k)
▸ Gözlənilən nəticə
37042
Nümunə 2-nin proqramı. Əvvəl nəticəni özün tap, sonra proqramı işə salıb yoxla.
Nümunə 2. DİM tipli tapşırıq: proqramın nəticəsi

İmtahanda yuxarıdakı proqram x = int(input()) ilə başlayır və klaviaturadan 3704 daxil edilir. Proqramın nəticəsini müəyyən edin.
A) 37041 B) 3704 C) 37042 D) 24073 E) 37043

Həllini göstər
İzləmə cədvəli (x → son rəqəm, cütdürmü, k):
3704 → 4, cüt, k = 1
370 → 0, cüt, k = 2
37 → 7, tək, k = 2
3 → 3, tək, k = 2
x = 0 — dövr bitir. m ilkin ədədi saxlayıb: m · 10 + k = 37040 + 2 = 37042.
Cavab: C. Tələ: 0 da cüt rəqəmdir; onu unudan 37041 seçir.

Tərs ədəd, palindrom və «bütün rəqəmlər tək»

Tərs ədədi qurmaq üçün hər addımda köhnə nəticəni 10-a vurub yeni rəqəmi əlavə edirik: əvvəlki rəqəmlər bir mövqe sola sürüşür. Ədəd öz tərsinə bərabərdirsə, o palindromdur: 121, 4554, 7.

r = r * 10 + n % 10
burada:
  • rtərs ədəd; başlanğıcda r = 0
  • n % 10növbəti son rəqəm

Tərs ədəd: 5682 üçün r = 2, 28, 286, 2865. Palindrom yoxlaması: dövrdən sonra r == m (m — ilkin ədədin nüsxəsi).

a * pow(10, c) + n n * 10 + a
burada:
  • cn-in rəqəmlərinin sayı (rəqəm dövrünün sayğacı)
  • aəlavə olunan rəqəm

a rəqəmini ədədin əvvəlinə və sonuna yazmaq.

Nümunə 3. Tərs ədəd və rəqəm əlavə etmək

1) 1230 ədədinin tərsini tapın; o, palindromdurmu? 2) 4554 palindromdurmu? 3) 309 ədədinin əvvəlinə və sonuna 7 rəqəmini yazın.

Həllini göstər
1) r: 0 → 3 → 32 → 321. Tərs ədəd 321-dir (0321 yazılmır); 321 ≠ 1230 — palindrom deyil.
2) r: 4 → 45 → 455 → 4554 = n, deməli palindromdur.
3) 309-da c = 3 rəqəm var: 7 · 10³ + 309 = 7309; sonuna: 309 · 10 + 7 = 3097.

«Bütün rəqəmlər təkdirmi?» sualına iki yolla cavab vermək olar: tək rəqəmləri sayıb rəqəmlərin ümumi sayı ilə müqayisə etmək, ya da bayraq dəyişəni götürmək: əvvəlcə t = 1 («hələ ki hamısı tək»), cüt rəqəm görən kimi t = 0. Aşağıdakı proqramda xarici dövr ədədləri, daxili dövr isə rəqəmləri gəzir.

Python
for n in [357, 48, 1991, 7, 5031]:
    m = n
    t = 1
    while m > 0:
        if m % 10 % 2 == 0:
            t = 0
        m = m // 10
    if t == 1:
        print(n)
▸ Gözlənilən nəticə
357
1991
7
5031 çap olunmur: 0 cüt rəqəmdir. Yazılı tapşırıqda ədədlər bir-bir int(input()) ilə oxunur.

Bölənlər, sadə ədədlər və tam kvadratlar

Tərif
Bölən

n ədədi i-yə qalıqsız bölünürsə, i ədədi n-in bölənidir: n % i == 0. 1-dən böyük hər natural ədədin ən azı iki böləni var: 1 və özü.

Tərif
Sadə ədəd

Düz iki natural böləni (1 və özü) olan natural ədəd: 2, 3, 5, 7, 11, 13, … İkidən çox böləni olan ədəd mürəkkəb ədəddir; 1 nə sadə, nə də mürəkkəbdir.

Tərif
Tam kvadrat

Hansısa natural ədədin kvadratı olan ədəd: 1, 4, 9, 16, 25, 36, …

n % i == 0, i = 1, 2, …, n
burada:
  • iyoxlanılan namizəd bölən
  • c == 2bölənlərin sayı 2-dirsə, n sadədir

Bölən dövrü: for i in range(1, n + 1): və içində if n % i == 0:.

Python
n = 60
c = 0
s = 0
t = 0
for i in range(1, n + 1):
    if n % i == 0:
        print(i, end=' ')
        c = c + 1
        s = s + i
        if i % 2 == 1:
            t = t + i
print()
print(c, s, t)
▸ Gözlənilən nəticə
1 2 3 4 5 6 10 12 15 20 30 60 
12 168 24
60-ın bölənləri, onların sayı (12), cəmi (168) və tək bölənlərin cəmi (1 + 3 + 5 + 15 = 24). end=' ' bölənləri bir sətirdə çap edir.
pow(a, 0.5) == int(pow(a, 0.5))
burada:
  • pow(a, 0.5)a-nın kvadrat kökü, kəsr tipli ədəd (49 ** 0.5 → 7.0)
  • int(…)kəsr hissəni atır

Kök tam ədəddirsə, a tam kvadratdır. DİM həllərində a ** (1/2) yazılışı da işlənir — eyni şeydir.

Nümunə 4. Bölənlər, sadəlik, kvadratlar

1) 36-nın neçə böləni var? 2) 97 sadə ədəddirmi? 3) 28-in özündən başqa bölənlərinin cəmini tapın. 4) [30; 50] parçasında neçə tam kvadrat var?

Həllini göstər
1) 1, 2, 3, 4, 6, 9, 12, 18, 36 — 9 bölən. Say təkdir, çünki bölənlər cüt-cüt gəlir (1 · 36, 2 · 18, 3 · 12, 4 · 9), 6 isə özü ilə cüt olur: 6 · 6 = 36.
2) 2-dən 9-a qədər yoxlamaq kifayətdir (10 · 10 = 100 > 97). Bu ədədlərdən heç biri 97-ni bölmür, deməli 97-nin cəmi iki böləni var — sadədir.
3) 1 + 2 + 4 + 7 + 14 = 28 — cəm ədədin özünə bərabərdir (belə ədədlər mükəmməl ədəd adlanır).
4) 36 və 49: 36 ** 0.5 → 6.0, 49 ** 0.5 → 7.0. Cavab: 2.

İç-içə dövrlər: parçadakı bütün ədədləri yoxlamaq

Tapşırıq bir ədəd üçün deyil, [a; b] parçasındakı hər ədəd üçün verilirsə, bölən (və ya rəqəm) dövrünü başqa dövrün içinə qoyuruq: xarici dövr ədədləri, daxili dövr bölənləri gəzir. Sayğac (c = 0) hər yeni ədəd üçün sıfırlanmalıdır, ona görə də o, xarici dövrün içində yazılır.

Python
a = 20
b = 40
k = 0
for n in range(a, b + 1):
    c = 0
    for i in range(1, n + 1):
        if n % i == 0:
            c = c + 1
    if c == 2:
        print(n, end=' ')
        k = k + 1
print()
print('count =', k)
▸ Gözlənilən nəticə
23 29 31 37 
count = 4
[20; 40] parçasındakı sadə ədədlər. c = 0 sətrini xarici dövrdən əvvələ keçirib nə dəyişdiyinə bax.
Nümunə 5. Daxili dövr neçə dəfə işləyir?

Yuxarıdakı proqramda if n % i == 0 yoxlaması cəmi neçə dəfə icra olunur?

Həllini göstər
Hər n üçün daxili dövr i = 1, 2, …, n qiymətlərini alır, yəni n dəfə işləyir. Cəm: 20 + 21 + … + 40. Bu, 21 həddli arifmetik silsilədir: (20 + 40) · 21 / 2 = 630.
Cavab: 630. √n qaydası ilə yoxlamaların sayı xeyli azalardı.

ƏBOB, ƏKOB və cəmlər

İki ədədin ən böyük ortaq bölənini (ƏBOB) bütün bölənləri yoxlamadan, Evklid alqoritmi ilə tapmaq olar. O, bir fakta əsaslanır: a-nı b-yə böləndə alınan qalıq da ƏBOB(a; b)-yə bölünür. Deməli, (a; b) cütünü (b; a % b) cütü ilə əvəz etmək olar və ədədlər sürətlə kiçilir.

ƏBOB(a; b) = ƏBOB(b; a % b), ƏBOB(a; 0) = a
burada:
  • a % ba-nın b-yə bölünməsindən qalıq
  • b = 0qalıq 0 olanda dayanırıq: cavab a-dır

Evklid alqoritmi. Dərsliklərdə çıxma variantı da var: ədədlər bərabərləşənə qədər böyükdən kiçiyi çıx.

ƏKOB(a; b) = a · b / ƏBOB(a; b)ƏKOB(a; b) = a · b / ƏBOB(a; b)
burada:
  • a · biki ədədin hasili

Ən kiçik ortaq bölünən ƏBOB-dan dərhal alınır.

Python
a = 84
b = 36
p = a * b
while b != 0:
    r = a % b
    a = b
    b = r
print(a, p // a)
▸ Gözlənilən nəticə
12 252
(84; 36) → (36; 12) → (12; 0): ƏBOB = 12, ƏKOB = 3024 / 12 = 252. Çıxma variantında: (84; 36) → (48; 36) → (12; 36) → (12; 24) → (12; 12).
Nümunə 6. ƏBOB və ƏKOB

Evklid alqoritmi ilə ƏBOB(126; 84) və ƏKOB(126; 84)-ü tapın. Dövr neçə dəfə işləyir?

Həllini göstər
(126; 84): 126 % 84 = 42 → (84; 42)
(84; 42): 84 % 42 = 0 → (42; 0) — dayanırıq.
ƏBOB = 42, dövr 2 dəfə işlədi. ƏKOB = 126 · 84 / 42 = 10584 / 42 = 252.

Cəm və hasil ardıcıllıqları da eyni sxemlə hesablanır: toplayıcı (s = 0) və ya vurucu (p = 1) dəyişən, dövrün hər addımında bir hədd. Kəsrlərdə / işlədilir, nəticə kəsr ədəd olur.

S = 1 + 1/2 + 1/3 + … + 1/n n! = 1 · 2 · 3 · … · nS = 1 + 1/2 + 1/3 + … + 1/n n! = 1 · 2 · 3 · … · n
burada:
  • s = s + 1 / is = s + 1 / icəmin dövrdəki şablonu
  • p = p * ifaktorialın şablonu (başlanğıcda p = 1)

i dövr dəyişənidir: for i in range(1, n + 1):.

Python
n = 4
s = 0
p = 1
for i in range(1, n + 1):
    s = s + 1 / i
    p = p * i
print(round(s, 4), p)
▸ Gözlənilən nəticə
2.0833 24
1 + 1/2 + 1/3 + 1/4 = 25/12 ≈ 2,0833 və 4! = 24. round(s, 4) nəticəni vergüldən sonra 4 rəqəmə qədər yuvarlaqlaşdırır.
Nümunə 7. İşarəsi növbələşən cəm

S = 1 − 1/2 + 1/3 − 1/4 cəmini hesablayan dövr qurun və S-i tapın.

Həllini göstər
İşarə üçün z dəyişəni götürürük: əvvəlcə z = 1, hər addımda s = s + z / i və z = -z.
i = 1: s = 1
i = 2: s = 1 − 1/2 = 1/2
i = 3: s = 1/2 + 1/3 = 5/6
i = 4: s = 5/6 − 1/4 = 7/12 ≈ 0,5833.
Eyni fikir blok-sxemdə «Blok-sxemin qurulması: yazılı tapşırıqlar» dərsində işlənir.
TapşırıqŞablon
rəqəmlərin cəmis = s + n % 10, n = n // 10
rəqəmlərin sayıc = c + 1; len(str(n))
tərs ədəd, palindromr = r * 10 + n % 10; r == m
bölənlərin sayıif n % i == 0: c = c + 1
sadə ədədc == 2
tam kvadrata ** 0.5 == int(a ** 0.5)
ƏBOBr = a % b, a = b, b = r
1 + 1/2 + … + 1/n cəmis = s + 1 / i
Hazır şablonlar. Onlardan tam proqram qurmaq «Proqram yazmaq: yazılı tapşırıqların həlli» dərsində göstərilir.
Özünü yoxla: boşluğu doldur
  1. 1.Ədədin son rəqəmi: d = n 10
  2. 2.Tərs ədəd: r = r * + n % 10
  3. 3.Sadə ədədin düz böləni var.
  4. 4.ƏBOB(48; 18) =
  5. 5.1-dən 100-ə qədər tam kvadratların sayı:
Tapşırıq

while dövrü ilə n = 90517 ədədinin rəqəmlərinin cəmini və tərs ədədi tapın və onları bir sətirdə, boşluqla ayıraraq çap edin.

Tapşırıq · Python
n = 90517
s = 0
r = 0
# digit loop here

print(s, r)
▸ Gözlənilən nəticə
22 71509
Tapşırıq

1-dən 100-ə qədər (daxil olmaqla) düz 3 böləni olan ədədləri çap edin — hər birini ayrıca sətirdə. Sonra onlara bax: bu ədədlərin ortaq cəhəti nədir?

Tapşırıq · Python
for n in range(1, 101):
    c = 0
    # count the divisors of n here

    if c == 3:
        print(n)
▸ Gözlənilən nəticə
4
9
25
49

Əsas fikirlər

  • n % 10 son rəqəmi verir, n // 10 onu atır; rəqəm dövrü while n > 0: şərti ilə işləyir.
  • Cəm 0-dan, hasil 1-dən başlayır; tərs ədəd r = r * 10 + d ilə qurulur, palindromda r ilkin ədədə bərabərdir.
  • i n-in bölənidir ⇔ n % i == 0; sadə ədədin düz 2 böləni var, sadəliyi yoxlamaq üçün i * i <= n-ə qədər getmək kifayətdir.
  • Tam kvadrat: a ** 0.5 == int(a ** 0.5); ƏBOB — Evklid alqoritmi, ƏKOB = a · b / ƏBOB.
  • Parçadakı hər ədəd üçün xarici dövr ədədləri, daxili dövr bölənləri və ya rəqəmləri gəzir; sayğac xarici dövrün içində sıfırlanır.

Özünü yoxla

12 sual. Hər düzgün cavab XP qazandırır.

1 / 12
Ədədin son rəqəmini hansı ifadə verir?