Sunteți pe pagina 1din 5

Prelucrarea cifrelor unui număr

Exemplu Observații
n=125346 Se observă că, pentru obținerea tuturor cifrelor, se execută un număr de 6
Pas 1 c=6, n=12534 pași, deoarece numărul natural n este format din 6 cifre.
Pas 2 c=4, n=1253 Cifrele numărului pot fi extrase de la dreapta la stânga, prin împărțiri la 10.
Pas 3 c=3, n=125 Ultima cifră este restul împărțirii numărului n la 10 și se poate obține după
Pas 4 c=5, n=12 formula c=n%10.
Pas 5 c=2, n=1 După obținerea ultimei cifre, aceasta se taie din număr, numărul
Pas 6 c=1, n=0 actualizându-se după formula n=[n/10], adică câtul împărțirii lui n la 10.
După obținerea tuturor cifrelor, n devine 0.
Algoritmul în pseudocod
Cât timp n≠0 execută repetă
cn%10 cn%10
n[n/10] n[n/10]
<prelucrează c> <prelucrează c>
până când n=0;

Suma cifrelor unui număr

Exemplu Observații
n=125346, S=0 Folosind algoritmul de descompunere în cifre, prelucrarea
Pas 1 c=6, n=12534, S=0+6=6 cifrei c constă în adăugarea ei la suma S a cifrelor lui n.
Pas 2 c=4, n=1253, S=6+4=10 Inițial S=0, deoarece 0 este elementul neutru la adunare.
Pas 3 c=3, n=125, S=10+3=13 Actualizarea lui S este: S=S+c ⟺ S=S+n%10
Pas 4 c=5, n=12, S=13+5=18
Pas 5 c=2, n=1, S=18+2=20
Pas 6 c=1, n=0, S=20+1=21
Algoritmul în pseudocod
S0 S0
cât timp n≠0 execută repetă
cn%10 cn%10
n[n/10] n[n/10]
SS+c SS+c
până când n=0;

Oglinditul unui număr

Exemplu Observații
n=125346, og=0 Folosim algoritmul de descompunere în cifre. S- a observat
Pas 1 c=6, n=12534, og=6 că pentru obținerea cifrelor numărul se împarte la 10, atâta
Pas 2 c=4, n=1253, og=6*10+4=64 timp cât mai are cifre.
Pas 3 c=3, n=125, og=64*10+3=643 Operația inversă, de construire a unui număr având cifrele la
Pas 4 c=5, n=12, og=643*10+5=6435 dispoziție, se va face prin operații de înmulțire cu 10.
Pas 5 c=2, n=1, og=6435*10+2=64352 Inițial og=0, deoarece oglinditul nu a fost construit.
Pas 6 c=1, n=0, og=64352*10+1=643521 Actualizarea lui og este: og=og*10+c ⟺ og=og*10+n%10
Algoritmul în pseudocod
og0 og0
cât timp n≠0 execută repetă
cn%10 cn%10
n[n/10] n[n/10]
ogog*10+c ogog*10+c
până când n=0;

Palindrom: un număr natural egal cu oglinditul său

n=135 , og=531 ⇒n nu este palindrom


n=232, og=232 ⇒n este palindrom
Divizibilitate: x este divizibil cu y dacă restul împărțirii lui x la y este 0, adică x%y=0

Divizorii unui număr

m=12 m=35 Observații


1 2 3 4 6 12 – toți divizorii 1 5 7 35 Toți divizorii numărului se găsesc în intervalul
numărului 12 [1,12], pentru m=12, pe caz general [1,m]
1 și 12 se numesc divizori 1, 35 – divizori improprii
improprii
2 3 4 6 – divizori proprii 5, 7 – divizori proprii Se observă că cel mai mic divizor propriu poate fi 2,
iar cel mai mare divizor propriu poate fi cel mult
jumătatea numărului.
Deci, intervalul în care se caută divizorii proprii este
[2, m/2].
Algoritmul în pseudocod – prelucrare divizori proprii
citește m citește m citește m
pentru d2,[m/2] execută, d2 d2
dacă m%d=0 atunci cât timp d≤[m/2] execută repetă
<prelucrează d> dacă m%d=0 atunci dacă m%d=0 atunci
<prelucrează d> <prelucrează d>

dd+1 dd+1
până când d>[m/2]

Testare primalitate: un număr x este prim dacă are ca divizori doar pe 1 și el însuși, deci nu are divizori proprii, are
doar divizori improprii.

x=15 x=17 Observații


1, 3, 5, 15 – divizorii lui 15 1, 17 – divizorii lui 17 Pentru a verifica dacă un număr este prim,
Nu este număr prim Este număr prim deoarece nu are demonstrăm prin reducere la absurd:
deoarece are divizori proprii decât divizori improprii - presupunem că x este număr prim și
demonstrăm contrariul
- căutăm divizori proprii
 dacă se găsește un astfel de
divizor, presupunerea devine
falsă
Algoritmul în pseudocod – primalitatea unui număr
citește x citește x citește x
prim1 prim1 prim1
pentru d2,[x/2] execută, d2 d2
dacă x%d=0 atunci cât timp d≤[x/2] și prim=1 execută repetă
prim0 dacă x%d=0 atunci dacă x%d=0 atunci
prim0 prim0
dacă prim=1 atunci
scrie ”număr prim” dd+1 dd+1
altfel până când d>[x/2] sau prim=0
scrie ”nu este număr prim” dacă prim=1 atunci dacă prim=1 atunci
scrie ”număr prim” scrie ”număr prim”
altfel altfel
scrie ”nu este număr prim” scrie ”nu este număr prim”
Descompunerea unui număr în factori primi

n=12 n=150 n=28 Observații


n d n d n d - Primul factor prim posibil este d2
12 2 150 2 28 2 - Se descompune numărul în factori primi până când
6 2 75 3 14 2 devine 1 sau cât timp este ≠1 (cât timp n≠1)
3 3 25 5 7 7 - Pentru fiecare factor prim d, se împarte numărul la d,
1 5 5 1 atâta timp cât este posibil (cât timp n%d=0)
1 - Când n nu se mai împarte la d, se trece la următorul
factor prim (dd+1)
Algoritmul în pseudocod
d2 //primul factor prim posibil d2
cât timp n≠1 execută repetă
p0 //puterea la care apare factorul prim p0
cât timp n%d=0 execută //se împarte n la d cât timp este posibil cât timp n%d=0 execută
pp+1 pp+1
n[n/d] n[n/d]

dacă p≠0 atunci dacă p≠0 atunci


scrie d,’ ‘ scrie d,’ ‘

dd+1 dd+1
≠ ≠ până când n=1
CMMDC- cel mai mare divizor comun

a=12, b=32
2
a=2 *3
b=25
CMMDC a două numere este cel mai mare număr cmmmc(12,32)=25*3=96
care le divide pe ambele. - comun și necomun la puterea cea mai mare
cmmdc(12,32)=22=4 cmmmc(12,32)=(12*32)/cmmdc(12,32)
-comun la puterea cea mai mică

Cmmdc – Algoritmul lui Euclid, cu resturi

Fie a si b doua numere întregi, unde |a| > |b| sau |a| = |b|, b nenul.
1) Se împarte |a| la |b|; dacă restul împărţirii este 0, atunci b este un c.m.m.d.c. ;
2) Dacă restul împărţirii este nenul, se împarte |b| la primul rest (restul împărţirii de
mai sus) şi obţinem al doilea rest;
3) Împărţim, apoi, primul rest la al doilea şi obținem un nou rest (al treilea) şi aşa mai
departe;
4) Ultimul rest nenul este c.m.m.d.c. al celor 2 numere.
Observaţii:
a) Dacă ultimul rest nenul este 1, atunci numerele sunt prime între ele;
Dacă CMMDC(a, b) = 1, atunci a și b sunt prime între ele. Această proprietate nu depinde de primalitatea lui a și a lui
b. De exemplu, numerele 6 și 35 nu sunt numere prime, deoarece ambele au doi factori: 6 = 2 × 3 și 35 = 5 × 7. Cu
toate acestea, 6 și 35 sunt prime între ele. Niciun alt număr natural în afară de 1 nu divide și pe 6 și pe 35, deoarece
ele nu au niciun factor prim în comun.
b) Algoritmul lui Euclid se poate folosi şi pentru aflarea c.m.m.d.c. al mai multor numere, de pilda a,b,c.
Se calculează mai întâi (a,b) = d, apoi (c,d) = e.
CMMDC(a, b, c) = CMMDC(a, CMMDC(b, c)) = CMMDC(CMMDC(a, b), c) = CMMDC(CMMDC(a, c), b).
Algoritmul în pseudocod Exemplu
citeste a,b a=12, b=32 cmmdc(12,32)=4
ra%b r12%32=12
cât timp r≠0 execută r≠0 (12≠0) Adevărat
ab a32
br b12
ra%b r32%12=8
r≠0 (8≠0) Adevărat
cmmdcb a12
scrie cmmdc b8
r12%8=4
r≠0 (4≠0) Adevărat
a8
b4
r8%4=0
r≠0 (0≠0) Fals
cmmdcb=4
OBSERVAȚIE:
În urma calcului cmmdc numerele se modifică. Pentru a le folosi apoi trebuie să realizăm o copie.
Cmmdc – Algoritmul lui Euclid, cu diferențe

𝑎, 𝑑𝑎𝑐ă 𝑎 = 𝑏
cmmdc(a,b)= 𝑐𝑚𝑚𝑑𝑐 𝑎 − 𝑏, 𝑏 , 𝑑𝑎𝑐ă 𝑎 > 𝑏
𝑐𝑚𝑚𝑑𝑐 𝑎, 𝑏 − 𝑎 , 𝑑𝑎𝑐ă 𝑏 > 𝑎
Algoritmul în pseudocod Exemplu
citește a,b a=12, b=32 cmmdc(12,32)=4
cât timp a≠b execută 12≠32 Adevărat
dacă a>b atunci 12>32 Fals
aa-b b32-12=20
altfel 12≠20 Adevărat
bb-a 12>20 Fals
b20-12=8
cmmdca 12≠8 Adevărat
scrie cmmdc 12>8 Adevărat
a12-8=4
4≠8 Adevărat
4>8 Fals
b8-4=4
4≠4 Fals
cmmdc4
OBSERVAȚII:
a. În urma calcului cmmdc numerele se modifică. Pentru a le folosi apoi trebuie să realizăm o copie.
b. Algoritmul lui Euclid cu resturi este mai rapid decât algoritmul prin scăderi repetate pentru că folosim
împărțire.

Citirea unui șir de numere până la întâlnirea valorii 0, care nu face parte din șir
Algoritmul în pseudocod
citeste a repetă
cât timp a execută citește a
<prelucrează a> dacă a≠0 atunci
citește a <prelucrează a>

până când a=0


Citirea unui șir de n numere

Algoritmul în pseudocod
citește n citește n
pentru i1,n,1 execută pentru in,1,-1 execută
citește a citește a
<prelucrează a> <prelucrează a>

Prelucrarea numerelor dintr-un interval [a,b]

Algoritmul în pseudocod
citește a,b citește a,b citește a,b
pentru ia,b,1 execută ia pentru ib,a,-1 execută
copiai cât timp i≤b execută copiai
<prelucrează copia> copiai <prelucrează copia>
<prelucrează copia>
ii+1

S-ar putea să vă placă și