Didaxis
lecție · Informatică

Divizorii unui număr

Enumerare și numărare a divizorilor.

Se face în:
Clasa a IX-a
Actualizat la: 30 octombrie 2026
1pe scurtstratul 1 din 3 · rezumatul lecției

Pe scurt

Un întreg pozitiv este divizor al lui dacă restul împărțirii lui la este zero. Pentru 12, divizorii pozitivi sunt 1, 2, 3, 4, 6 și 12. În acest curs, un divizor propriu este strict între 1 și ; pentru 12, divizorii proprii sunt 2, 3, 4 și 6. Divizorii pozitivi apar în perechi: , , . Această observație reduce căutarea până la rădăcina pătrată a numărului.

În Python, 12 % 3 == 0 este adevărat: 3 divide 12 fără rest. Testând valorile de la 1 la 12 obții divizorii 1, 2, 3, 4, 6, 12.

Desen la lecția „Divizorii unui număr”
2în detaliustratul 2 din 3 · pentru clasă și Bacalaureat

În detaliu

Spunem că este divizor al lui dacă . Divizorii pozitivi ai unui număr apar în perechi : dacă , unul dintre ei este cel mult . Pentru perechile sunt , și , iar divizorii mai mici decât sunt 1, 2 și 3. De aceea e suficient să testezi valorile cu și să tratezi fiecare divizor găsit împreună cu perechea lui. Dacă , perechea coincide cu și numărul se ia o singură dată. Divizorii 1 și se numesc improprii; ceilalți sunt divizori proprii. Testul d <= n / d este echivalent cu , dar nu depășește tipul întreg la numere mari.

Exemplul 1 — numărul și suma divizorilor lui 36. Valorile lui sunt 1, 2, 3, 4, 5 și 6.

  1. : divizor, pereche , contorul crește cu 2, suma cu .
  2. : pereche , contor 4, suma .
  3. : pereche , contor 6, suma .
  4. : pereche , contor 8, suma .
  5. nu divide 36.
  6. : , un singur divizor, contor 9, suma .
#include <iostream>
using namespace std;
int main() {
    int n = 36, cnt = 0, suma = 0;
    for (int d = 1; d <= n / d; ++d) {
        if (n % d == 0) {
            cnt += (d == n / d) ? 1 : 2;
            suma += d + (d == n / d ? 0 : n / d);
        }
    }
    cout << cnt << ' ' << suma;
    return 0;
}

Programul afișează 9 91. Numărul 36 are un număr impar de divizori pentru că este pătrat perfect; orice alt număr natural are un număr par de divizori.

Exemplul 2 — afișarea divizorilor în ordine crescătoare. Pentru , parcurgi mai întâi de la 1 în sus și afișezi divizorii mici, apoi de la rădăcină în jos și afișezi perechile mari , sărind peste pătratul perfect:

int n = 12, r = 1;
while ((r + 1) * (r + 1) <= n) ++r;   // r = [radical din n]
for (int d = 1; d <= r; ++d)
    if (n % d == 0) cout << d << ' ';
for (int d = r; d >= 1; --d)
    if (n % d == 0 && d * d != n) cout << n / d << ' ';

Prima parcurgere afișează divizorii mici 1, 2, 3. A doua merge în sens invers și afișează perechile lor mari , , , sărind peste pătratul perfect, unde perechea ar repeta divizorul. Rezultatul este 1 2 3 4 6 12, adică divizorii în ordine crescătoare.

Un număr natural este perfect dacă este egal cu suma divizorilor săi proprii și a lui 1 fără el însuși; de exemplu . Aceeași parcurgere până la îl poate verifica fără să testeze toate valorile până la .

Exemplul 3 — numărul divizorilor din descompunerea în factori primi. Dacă , numărul divizorilor pozitivi este . Pentru rezultă divizori. Parcurgerea cu perechi dă același rezultat: ciclul merge până la , pentru că . Valorile care divid 360 sunt 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15 și 18, adică 12 valori. Niciuna nu are , deci fiecare aduce câte 2 divizori și contorul final este 24.

Exemplul 4 — testul de număr prim. Un număr este prim dacă are exact doi divizori, 1 și . Este suficient să cauți un divizor cu . Pentru 97 se testează , deoarece . Niciun nu dă rest 0, deci 97 este prim.

3pentru admiterestratul 3 din 3 · pentru examene

Pentru admitere

La numărarea divizorilor, nu dubla rădăcina unui pătrat perfect. Pentru există un singur divizor, 1. Când condiția buclei este d * d <= n, ultima valoare a lui este , nu . Într-un fragment care folosește n % d, valoarea este interzisă. Dacă într-un fragment apar ambele bucle, ca mai sus, ordinea afișării este cea a ciclurilor, nu cea a valorilor. Complexitatea metodei pe perechi este proporțională cu , iar a celei care testează toate valorile până la este proporțională cu . Pentru ciclul face o singură iterație, , cu , adaugă 1 și numărul are un singur divizor. Pentru un număr prim , valoarea adaugă 2, iar celelalte iterații nu găsesc niciun divizor, deci contorul final este 2.

Exemplu în formatul examenului. Ce se afișează în urma executării secvenței de mai jos?

int n = 36, k = 0;
for (int d = 1; d * d <= n; d++)
    if (n % d == 0)
        k += (d * d == n) ? 1 : 2;
cout << k;
  • a) 5
  • b) 6
  • c) 9
  • d) 10

Răspunsul corect este c). Ciclul parcurge . Valorile 1, 2, 3 și 4 sunt divizori cu perechi distincte (36, 18, 12, 9) și adaugă câte 2: contorul ajunge la 8. Valoarea 5 nu divide 36. Pentru avem , deci se adaugă 1 și . Varianta a) numără doar iterațiile care găsesc un divizor mic, adică 1, 2, 3, 4 și 6 fără perechi. Varianta d) numără și rădăcina 6 de două ori.

Greșeli frecvente

  • Greșit: 1 are doi divizori pozitivi.
    Corect: are doar divizorul 1.
  • Greșit: la 36, perechea lui 6 adaugă încă un 6 distinct.
    Corect: 6 se numără o singură dată.
  • Greșit: orice valoare poate fi folosită la n % d.
    Corect: divizorul trebuie să fie nenul.
în contul tăuPremium

Testează-te pe această lecție

Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.

Înainte și după

Surse și referințe

Redactare proprie, conform programei:

  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633 și 1653–1654; OMEC 4370/2026, anexa 8, p. 155–156; rocnee.eu
  • OMEC 4370/2026, anexa 8, Informatică IX intensiv, p. 155–156
  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633; rocnee.eu
  • OMEC 6930/2025, anexa 66, Informatică IX CS militar, Monitorul Oficial nr. 4 bis/8.01.2026, pp. 2563–2578; cdn.edupedu.ro; centralizator oficial actualizat prin OMEC 3224/2026, legislatie.just.ro
  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1653–1654; rocnee.eu
  • UNSTPB, Regulament admitere licență 2026, Anexa II-1.2 p. Anx II-14 și Anexa XI-3 p. Anx XI-6–7 (PDF p. 64, 120–121); admitere.pub.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 3 și 6; aplicabilitatea 2027: OMEC 5211/2026, art. 3 alin. (10); edu.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 3–4; edu.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 5–6; edu.ro

Documente consultate

  • UNSTPB, admitere 2026, anexa XI-3, p. Anx XI-6–7
  • Programa școlară de informatică, clasa a IX-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu
  • Programa școlară de informatică, clasa a IX-a, matematică-informatică (OMEC 6930/2025, anexa 42), p. 1653–1654; rocnee.eu
  • Programa de bacalaureat la informatică, matematică-informatică (anexa 2 la OMECTS 4800/2010), Ministerul Educației, p. 3 și 6; edu.ro
  • Subiectele și baremele Bacalaureatului 2026; subiecte2026.edu.ro

Desene: Redactare proprie (desen original), conform Programa școlară de informatică, clasa a IX-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu

lecțiile sunt gratuite

Ai citit lecția. Acum verifică-te.