You are on page 1of 4

Algoritmi elementari(clasa)

1.Interschimbare: 7.cifra maxima/minima:


Aux = A; Max = 0;
A = B; Min = 9;
B = Aux; if(n == 0) Min = 0;
2.Verificare patrat perfect: while (n){
X = sqrt(n); c = n % 10;
if(X == (int)x)cout << “este if(c < Min) Min = c;
p.p.”; if(c > Max) Max = c;
else cout << “nu este n /= 10;
p.p.”; }
3.nr. specificat de zecimale: cout << Min << “ ” << Max;
#include <iomanip> 8.cifra maxima si numarul de aparitii:
............... Max = 0;
cout << fixed << while (n){
setprecision(nr.zecimale) << c = n % 10;
variabila/lele; if(c > Max){
4.numarul de cifre: Max = c;
while (n){ nr = 0;
Nr++; }
n/= 10; if(Max == c) nr++;
} n /= 10;
cout << Nr; }
if(Max == 0) nr = 1;
5.suma cifrelor:
cout << Max << “ ” << nr;
while (n){
c = n % 10; 9.prima cifra a unui numar:
S += c; while (n > 9){
n /= 10; n /= 10;
} }
cout << S; cout << n;
6.oglinditul/ inversul:
while (n){
c = n % 10;
inv = inv * 10 + c;
n /= 10;
}
cout << inv;
10.formarea unui numar cu cifrele altui efficient
numar(Ex:doar cu cifre “<” decat 5): S = 0;
M = 0;P = 1; for(d=1;d<=N;d++){
while (n){ if(N%d==0){
c = n % 10; S+=d;
n /= 10; if(N/d!=d) S+=N/d;
if(c < 5){ }
M = M + C * P; }
P *= 10; cout << S;
} 14.nr.tuturor divizorilor unui nr:
} clasic:
cout << M; nr = 2;
11.eliminarea de cifre: for(d=2;d<=N/2;d++)
M = 0;P = 1; if(N%d==0)nr++;
while (n){ cout << S;
c = n % 10; eficient:
n /= 10; d = 2;nrd = 1;
if(c % 2 == 1){ while(d*d <= N){
M += C * P; e = 0;
P *= 10; while(N%d==0){
} e++;
} N /= d;
cout << M; }
12.primalitate if(e>0) nrd=nrd*(e+1);
OK = true; d++;
if(n < 2) OK = false; }
else{ if(N>1) nrd *= 2;
for(d = 2;d * d <= n;d++) cout << nrd;
if(n % d == 0) OK = false; 15.descompunerea in factori primi:
} clasic:
if(OK) cout << “Prim”; d = 2;
else cout << “nu prim”; while(N>1){
13.suma tuturor divizorilor e= 0;
clasic: while(N%d==0){
S = 1 + N; e++; N/= d;
for(d=2;d*d<=N/2;d++) }
if(N%d==0)S += d; if(e>0)cout<<d<<”^”<<e;
cout << S; d++;
}
eficent: 19.cmmdc(scaderi repetate):
d=2; cin >> a >> b;
while(d*d<=N){ while(a != b){
e=0; if(a > b)a -= b;
while(N%d==0){ else b -= a;
e++; }
N/=d; cout << a;
} 20.cmmdc-ul a n numere:
if(e>0)cout<<d<<”^”<<e; cin >> n;
d++; cin >> x;
} for(i = 2;i <= n;i++){
if(N>1)cout << N<<”^” <<1; cin >> y;
16.primul divisor al unui numar: while(y){
clasic: r = x % y;
d = 2; x = y;
while(N % d != 0){ y = r;
d++; }
} }
cout << d; cout << x;
efficient:
d = 2;
while(d*d<=N&&N%d!=0){
d++;
}
if(d*d<=N)cout <<d;
else cout << N;
17.cel mai mare divizor diferit de el insusi:

18.cmmdc(Euclid):
cin >> a >> b;
while(b){
r = a % b;
a = b;
b = r;
}
cout << a;

You might also like