Algoritmi

3
Sa se verifice daca un numar n diferit de 0 sau 1 este prim sau nu. Un numar este prim daca nu are divizori decat pe 1 si pe el insusi.Un numar d este divizor pentru n daca restul impartirii lui n la d este 0.Pentru a afla restul impartirii vom folosi operatorul mod(%) start citeste n prim=1 pentru d=2,n/2 executa daca n mod d =0 atunci prim=0 daca prim=1 atunci scrie "este prim" altfel scrie"nu este prim" sfarsit Sa se afle daca un numar este perfect Un numar este perfect daca este egal cu suma divizorilor sai, inclusiv 1, dar fara el insusi.Exemplu: 6=1+2+3 este numar perfect start citeste n s=0 pentru d=1,n/2 daca n mod d = 0 atunci s=s+d daca s=n atunci scrie "este numar perfect" sfarsit Sa se afiseze suma cifrelor unui numar n Ultima cifra este data de restul impartirii numarului la 10 (n mod 10).Catul impartirii il aflam folosid operatorul div start citeste n s=0 cat timp n>0 { c=n mod 10 s=s+c n=n div 10 } scrie s sfarsit Sa se calculeze cmmdc pentru doua numere prin impartiri repetate (algoritmul lui Euclid): ultimul rest diferit de 0 reprezinta cmmdc start citeste a,b deimp=a imp=b cat timp imp != 0 executa { r=deimp mod imp deimp=imp imp=r } scrie "cmmdc este",deimp stop prin scaderi repetate (algoritmul lui Nicomachus): din numarul mai mare se scade numarul mai mic cat timp cele doua numere sunt diferite start citeste a,b cat timp a != b executa daca a>b atunci a=a-b altfel b=b-a scrie "cmmdc este",a stop Sa se afle cifra maxima a unui numar (cea mai mare cifra a unui numar) start citeste n max=-1 cat timp n>0 { c=n mod 10 daca max<c atunci max=c n=n div 10 } scrie max sfarsit Suma numerelor naturale pare mai mici decat n citeste n nr=2 s=0 cat timp nr<=n s=s+nr nr=nr+2 sf cat timp scrie s Suma primelor n numere naturale pare citeste n i=1 nr=2 s=0 cat timp i<=n s=s+nr nr=nr+2 i=i+1 sf cat timp scrie s Palindrom Se citeşte un număr întreg a. Să se realizeze un algoritm care să verifice dacă numărul citit este sau nu palindrom. Numim palindrom un număr care este egal cu oglinditul său. De exemplu dacă se citeşte pentru a valoarea 121 atunci algoritmul va afişa „este palindrom", iar dacă va citi 122 va afişa „nu este palindrom".

Transcript of Algoritmi

Page 1: Algoritmi

Sa se verifice daca un numar n diferit de 0 sau 1 este prim sau nu.Un numar este prim daca nu are divizori decat pe 1 si pe el insusi.Un numar d este divizor pentru n daca restul impartirii lui n la d este 0.Pentru a afla restul impartirii vom folosi operatorul mod(%)

startciteste nprim=1pentru d=2,n/2 executadaca n mod d =0 atunciprim=0daca prim=1 atunci scrie "este prim"altfelscrie"nu este prim"sfarsit

Sa se afle daca un numar este perfectUn numar este perfect daca este egal cu suma divizorilor sai, inclusiv 1, dar fara el insusi.Exemplu: 6=1+2+3 este numar perfect

startciteste ns=0pentru d=1,n/2 daca n mod d = 0 atuncis=s+ddaca s=n atunci scrie "este numar perfect"sfarsit

Sa se afiseze suma cifrelor unui numar nUltima cifra este data de restul impartirii numarului la 10 (n mod 10).Catul impartirii il aflam folosid operatorul div

startciteste ns=0cat timp n>0{c=n mod 10s=s+cn=n div 10}scrie ssfarsit

Sa se calculeze cmmdc pentru doua numereprin impartiri repetate (algoritmul lui Euclid): ultimul rest diferit de 0 reprezinta cmmdc

startciteste a,bdeimp=aimp=bcat timp imp != 0 executa{r=deimp mod impdeimp=impimp=r}scrie "cmmdc este",deimpstop

prin scaderi repetate (algoritmul lui Nicomachus): din numarul mai mare se scade numarul mai mic cat timp cele doua numere sunt diferite

startciteste a,bcat timp a != b executadaca a>b atuncia=a-baltfelb=b-ascrie "cmmdc este",astop

Sa se afle cifra maxima a unui numar (cea mai mare cifra a unui numar)

startciteste nmax=-1cat timp n>0{c=n mod 10daca max<c atuncimax=cn=n div 10}scrie maxsfarsit

Suma numerelor naturale pare mai mici decat n

citeste nnr=2s=0cat timp nr<=ns=s+nrnr=nr+2sf cat timpscrie s

Suma primelor n numere naturale pare

citeste ni=1nr=2s=0cat timp i<=n s=s+nr nr=nr+2i=i+1sf cat timpscrie s

PalindromSe citeşte un număr întreg a. Să se realizeze un algoritm care să verifice dacă numărul citit este sau nu palindrom. Numim palindrom un număr care este egal cu oglinditul său.De exemplu dacă se citeşte pentru a valoarea 121 atunci algoritmul va afişa „este palindrom", iar dacă va citi 122 va afişa „nu este palindrom".

 citeşte aaux ← ao ← 0cât timp aux ≠ 0 execută| o ← o * 10 + aux % 10| aux ← aux / 10|▄Dacă a = o atunci| scrie „este palindrom"|altfel| scrie „nu este palindrom"|▄

Sirul lui Fibonacci Se citeşte un număr întreg n (2< n <= 20). Să se realizeze un algoritm care să afişeze al n-lea termen din şirul lui Fibonacci.

 citeşte nf1 ← 1f2 ← 2pentru i ← 3, n execută| f3 ← f2 + f1| f1 ← f2| f2 ← f3|▄scrie f3

Numere prieteneSe citesc două numere întregi a şi b. Să se realizeze un algoritm care să verifice dacă cele doau

Page 2: Algoritmi

numere sunt prietene. Spunem ca două numere sunt prietene dacă suma divizorilor proprii ai unui număr este egală cu celalalt şi invers.

citeşte a, bsa ← 0sb ← 0pentru i ← 2, [a/2] execută| dacă (a % i = 0) atunci| |  sa ← sa + i | |▄|▄pentru i ← 2, [b/2] execută| dacă (b % i = 0) atunci| |  sb ← sb + i | |▄|▄daca sa = b şi sb = a atunci | scrie „numere prietene”| altfel|   scrie „NU sunt numere prietene”Descompunerea în factori primi ai unui numarSe citeşte un număr întreg a. Să se realizeze un algoritm care să afişeze factorii primi şi puterile lor pentru numărul citit.  citeşte ad ← 2 cat timp a > 1 execută p ← 0  cat timp (a % d = 0) execută  p ← p + 1 a ← a / dsf.cat timp dacă p ≠ 0 atunci scrie d "la puterea" p "*"sf.daca d ← d + 1sf.cat timp

Divizorii proprii ai unui numarSe citeşte un număr întreg a. Să se realizeze un algoritm care să

afişeze toti divizorii proprii ai numărului a.  t ← 0 citeşte apentru i ← 2, [a/2] execută dacă (a % i = 0) atunci scrie i t ← 1  sf.dacasf.pentrudaca t = 0 atunciscrie „nu există divizori proprii"sf.daca

Afisarea divizorilor unui numarSe citeşte un număr întreg a. Să se realizeze un algoritm care să afiseze toti divizorii numărului a. citeşte apentru i ← 1, a execută dacă (a % i = 0) atunci scrie isf.dacasf.pentru

Ecuatia de gradul 1Să se rezolve ecuaţia de gradul I pentru coeficienţii a,b reali daţi .

citeste a,bdaca a!=0 atunci {x= (-b/a)scrie x}altfel daca b!=0atunci scrie 'nu exista solutii'altfel scrie 'o infinitate de solutii'sf.dacasf.daca

Numar parSă se introducă de la tastatură un număr întreg x. Scrieţi un

algoritm care testează dacă x este un număr par.

 citeşte x;dacă (x%2=0) atunci scrie x, " este par";altfel scrie x, " este impar";sf.dacă

Modulul unui numărSe intoduce de la tastatură un număr întreg x. Scrieţi un algoritm care calculează şi afişează modulul numărului x. citeşte x;dacă x<0 atunci m=-x;altfel m=x;sf.dacăscrie „modulul este: ",m;

INTERSCHIMBAREA VALORILOR A DOUA VARIABILE - METODA CELOR 3 PAHARE

Citeste a,baux=aa=bb=auxScrie a,b

Sa se afle cifra maxima a unui numar (cea mai mare cifra a unui numar)

startciteste nmax=-1cat timp n>0{c=n mod 10daca max<c atuncimax=cn=n div 10}scrie maxsfarsit