Sunteți pe pagina 1din 2

Algoritmi elementari

1.Algoritmul de interschimbare a valorilor memorate in x si y:


aux=x; ex: x=3,y=5 =>x=5,y=3
x=y;
y=aux;
2.Algoritmul maximului dintre doua numere x si y:
max=x; ex: x=2,y=5=>max=5
if(max<y) max=y;
3.Algoritmul minimului dintre doua numere x si y:
min=x; ex: x=2,y=5=>min=2
if(min>y) min=y;
4.Algoritmul de prelucrare a cifrelor unui nr.:
a)Obtinerea cifrelor unui nr. a: ex: c=3,a=126
while(a) c=6,a=12
{c=a%10; c=2,a=1
a=a/10; c=1,a=0
}
b)Obtinerea unui numar b format din n cifre cif:
b=0;p=1; sau b=0;
for(i=1;i<=n;i++) for(i=1;i<=n;i++)
{cout<<”cifra=”; {cin>>cifra;
cin>>cif; b=b*10+cifra;
b=b+cif*p; }
p=p*10;
}
c)Obtinerea unui nr cand nu se cunoaste nr de cifre citite si se citesc pana la introducerea unui
caracter care nu este cifra:
b=0; sau b=0;cin>>cif;
cin>>cif; while(cif>=0&&cif<=9)
while(cif>=0&&cif<=9) {b=b*10+cif;
{b=b*10+cif; cin>>cif;
cout<<”cif=”; }
cin>>cif;
}
5.Algoritmul de determinare a inversului unui nr:
inv=0; ex: x=12345=>
while(x) inv=0*10+5, x=1234
{inv=inv*10+x%10; inv=5*10+4, x=123
x=x/10; inv=54*10+3, x=12
} inv=543*10+2,x=1
Inv=5432*10+1,x=0
6.Algoritmul de determinare a c.m.m.d.c. a doua numere x si y:
a)while (y) b)while(x!=y)
{r=x%y; {if(x>y)
x=y; x=x-y;
y=r; else
} y=y-x;
cout<<x; }
cout<<x;
7.Algoritmul de determinare daca x este prim
gasit=0;i=2;
while(i<=sqrt(x)&&!gasit)
{if(x%i==0) gasit=1;
else
i++;}
if(gasit)cout<<”nu este prim”;
else cout<<”prim”;

8.Algoritmul de determinare a divizorilor unui nr x:


a)Toti divizori:
for(i=1;i<=x;i++)
if(x%i==0) cout<<i<<” “;
b)Pentru cei proprii:
for(i=2;i<=x/2;i++)
if(x%i==0) cout<<i<<” “;