Documente Academic
Documente Profesional
Documente Cultură
Obiective:
Determinare divizori
Determinare divizori proprii
Divizibilitate Verificare număr prim
Aplicații
Instrucțiunea for
Instrucțiunea for este o structură repetitivă cu număr necunoscut de pași și test final:
De la matematică putem spune că un număr natural d este divizorul lui x, dacă și numai dacă,
restul împărțirii lui x la d este egal cu zero:
dacă x % d = 0 atunci
scrie d „îl divide pe” x
altfel
scrie d „nu îl divide pe ” x
sfârșit_dacă
Dacă d divide pe x, spunem că d este divizor al lui x, iar x este multiplu al lui d. Dacă vom nota
cu Dn mulțimea divizorilor numărului x, atunci pentru numărul x = 12 putem scrie:
D12={1, 2, 3, 4, 6, 12},
unde 1 și 12 se numesc divizori improprii ai lui x, iar 2, 3, 4, 6 sunt divizorii proprii ai numărului dat.
Deci divizorii lui 75 sunt: {1, 75, 3, 25, 5, 15}. Constatăm astfel că pentru a determina divizorii
lui x este suficient să parcurgem numerele de la 1 la √𝑥. Un caz special îl constituie pătratele
perfecte. În cazul lor trebuie evitată analizarea de două ori a lui x si √𝑥 , care este divizor al lui x.
Pentru x=36 avem divizorii:
1. 1 în pereche cu 36
2. 2 în pereche cu 18
3. 3 în pereche cu 12
4. 4 în pereche cu 9
5. 5 nu este divizor al lui 36
6. 6 în pereche cu 6. Atenție! 6 trebuie luat o singură dată!
7. 7*7>36, ne oprim!
Noua variantă a algoritmului care afișează divizorii lui x este:
citește x (număr natural) #include <fstream>
using namespace std;
pentru fiecare posibil divizor de la 1 la [√𝑥] execută ifstream fin("numar.in");
dacă d este divizorul lui x atunci ofstream fout("divizori.out");
afișează divizorul d int main()
{int x;
dacă d<[√𝑥] atunci //evităm afișare dublată a lui x, dacă x este
//pătrat perfect
fin>>x;
for(int d=1;d*d<=x; d++)
afișează perechea divizorului d: x/d if(x % d==0)
sfârșit_dacă {fout<<d<<” ”;
sfârșit_dacă if(d*d<x)
fout<<x/d<<” ”;
sfârșit_pentru }
return 0;
}
Prof. Mihaela Corina ILDEGEZ
Centru pentru pregătire pentru Performanță ”Hai la Olimpiadă” - Suceava
Atenție! Pentru determinarea și prelucrarea divizorilor proprii ai unui număr este nevoie să
modificăm intervalul de căutare a posibililor divizori din interval închis [1, √𝑥] în intervalul [2, √𝑥],
fără a lua în considerare numărul însuși.
Prelucrarea divizorilor proprii ai lui x în funcție de cerința din problemă:
1. citește x (număr natural)
2. pentru fiecare posibil divizor de la 2 la [𝑥/2] execută
dacă d este divizor propriu lui x atunci
prelucrarea divizorului propriu determinat
sfârșit_dacă
sfârșit_pentru