0% found this document useful (0 votes)
29 views5 pages

Subprograme Algoritmi Fundamentali: Interschimbarea A Două Valori

The document contains descriptions of 14 algorithms that perform various operations on integers such as: swapping values, summing digits, counting prime digits, calculating the average of prime digits, determining if a number is a palindrome, eliminating odd digits, doubling even digits, and converting between number bases. Each algorithm is presented with a brief description, code sample in C++, and examples of I/O.

Uploaded by

ANDREI FUIOAGA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views5 pages

Subprograme Algoritmi Fundamentali: Interschimbarea A Două Valori

The document contains descriptions of 14 algorithms that perform various operations on integers such as: swapping values, summing digits, counting prime digits, calculating the average of prime digits, determining if a number is a palindrome, eliminating odd digits, doubling even digits, and converting between number bases. Each algorithm is presented with a brief description, code sample in C++, and examples of I/O.

Uploaded by

ANDREI FUIOAGA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

SUBPROGRAME

Algoritmi fundamentali
Interschimbarea a două valori Suma cifrelor Numarul cifrelor prime
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a, b; int a; int a;
void inter(int &x, int &y)
{ int suma(int x) int nrcifprim(int x)
int aux; { {
aux=x; int s=0; int nr=0;
x=y; while (x!=0) while(x>0)
y=aux; { {
}
s=s+x%10;
int main()
{ x=x/10; if(x%10==2||x%10==3||x%10==5||x%10==7)
cin>>a>>b; } nr++;
inter(a, b); return s; x=x/10;
cout<<a<<" "<<b; } }
return 0; int main() return nr;
}
{ }
cin>>a; int main()
cout<<suma(a); {
return 0; cin>>a;
} cout<<nrcifprim(a);
return 0;
}
Media aritmetica a cifrelor prime Produsul cifrelor pare Oglinditul
#include <iostream> #include <iostream> #include <iostream>
#include<iomanip> using namespace std; using namespace std;
using namespace std; int a; int a;
int a; int produs(int x) int oglindit(int x)
float medie(int x) { {
{ int p=1; int ogl=0;
int s=0,nr=0; while (x!=0) while(x!=0)
float ma; { {
while(x!=0) if (x%10%2==0) ogl=ogl*10+x%10;
{ p=p*(x%10); x=x/10;
if(x%10%3==0) x=x/10; }
{ } return ogl;
s=s+x%10; if (p==1) }
nr++; return -1; int main()
} else {
x=x/10; return p; cin>>a;
} } cout<<oglindit(a);
ma=1.0*s/nr; int main () return 0;
return ma; { }
} cin>>a;
int main() cout<<produs(a);
{ return 0;
cin>>a; }
cout
<<fixed<<setprecision(3)<<medie(a);
return 0;
}
Palindrom Determinarea primei cifre Cifra maxima
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a; int a; int a;
int palindrom(int x) int primacifra(int x) int ciframaxima (int x)
{ { {
int ogl = 0; while(x>9) x=x/10; int cmax;
int cx = x; return x; cmax=x%10;
while(x!=0) } while(x!=0)
{ int main() {
ogl = ogl *10 + x % 10; { if(x%10>cmax)
x = x/10; cin>>a; cmax=x%10;
} cout << primacifra(a); x=x/10;
if (cx == ogl) return 0; }
return 1; } return cmax;
else }
return 0; int main()
{
} cin>>a;
int main() cout<<ciframaxima(a);
{ return 0;
cin >> a; }
if (palindrom(a) == 1)
cout << "palindrom";
else
cout << "NU este palindrom";
return 0;
}
Eliminarea cifrelor impare Dublarea apariţiilor cifrelor Conversia unui numar din baza 10 in
pare baza 2
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a; int a; int a;
int eliminareimpare(int x) int dublarepare(int a)
{ { int p=1, nr=0, ok=0; int baza10inbaza2(int x)
int nr=0; while(a!=0) {
int p=1; { int p=1,nr=0;
int cx=x; if(a%10%2==0) while (x!=0)
while(x!=0) { {
{ nr=nr+(a%10)*p;
nr=nr+x%2*p;
if (x%10%2==0) p=p*10;
{ nr=nr+(a%10)*p; p=p*10;
nr=nr+ (x%10)*p; p=p*10; x=x/2;
p=p*10; ok=1; }
} } return nr;
x=x/10; else }
} {
int main ()
if (nr!=cx) nr=nr+(a%10)*p;
return nr; p=p*10; {
else } cin>>a;
return -1; a=a/10; cout<<baza10inbaza2(a);
} } return 0;
int main() if(ok==1) }
{ return nr;
cin>>a; else
cout<<eliminareimpare(a); return -1;
return 0; }
} int main()
{
cin>>a;
cout<<dublarepare(a);
return 0;
}
Conversia unui numar din baza 2 in Cifre identice Cifre in ordine crescatoare
baza 10
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a; int a; int a;
int baza2inbaza10(int x) int cifreidentice(int x) int ordine(int x)
{ { {
int p=1, nr=0; int ok=1,u; int ok=1;
while(x!=0) u=x%10; while (x>9)
{ while(x!=0) {
nr=nr+x%10*p; { if (x%10<x%100/10)
p=p*2; if(u!=x%10) ok=0;
x=x/10; ok=0; x=x/10;
} x=x/10;
return nr; } }
} return ok; return ok;
int main() } }
{ int main() int main()
cin>>a; { {
cout<<baza2inbaza10(a); cin>>a; cin >>a;
return 0; if(cifreidentice(a)==1) if (ordine(a)==1 )
} cout<<"cifre identice"; cout <<"cifre in ordine
else crescatoare";
cout<<"cifrele nu sunt identice"; else
return 0; cout <<"cifrele nu sunt in ordine
} crescatoare";

return 0;
}
Cifre de aceeasi paritate Calcularea cmmdc – metoda 1 Calcularea cmmdc – metoda 2
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a; int a,b; int a, b;
int paritate(int x) int cmmdc(int x,int y) int cmmdc(int x, int y)
{ {
{ while(x!=y) int r;
int ok=1; if(x>y) while(b!=0)
while(x>9) x=x-y; {
{ else r=a%b;
if(x%10%2!= x%100/10%2) y=y-x; a=b;
ok=0; return x; b=r;
x=x/10; }
} } return a;
return ok; int main() }
} { int main()
int main() cin>>a>>b; {
cout<<cmmdc(a,b); cin>>a>>b;
{ return 0; cout<<cmmdc(a, b);
cin>>a; } return 0;
if(paritate(a)==1) }
cout<<"de aceeasi paritate";
else
cout << "nu sunt de aceeasi
paritate";
return 0;
}
Calcularea cmmmc Număr prim Număr prim
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a,b; int a; int a;
int cmmmc(int x, int y) int nrprim(int x) int nrprim(int x)
{ { {
int p=x*y; int nr=0,d; int d;
while(x!=y) for(d=2; d<=x/2; d++) if(x<2)
if(x>y) if(x%d==0) return 0;
x=x-y; nr++; if(x==2)
else if(nr==0&&x>=2) return 1;
y=y-x; return 1; if(x%2==0)
return p/x ; else return 0;
return 0; for (d=3; d*d<=x; d=d+2)
} } if(x%d==0)
int main() int main() return 0;
{ { return 1;
cin>>a>>b; cin>>a; }
if(nrprim(a)==1) int main()
cout <<cmmmc(a,b); cout<<"Nr prim"; {
return 0; else cin>>a;
} cout<<"Nu este nr. prim"; if (nrprim(a)==1)
return 0; cout<<"nr prim";
} else
cout<<"nu este prim";
return 0;
}
Cifra de control Cifra de control Cifra de control
Metoda 1 Metoda 2 Metoda 3
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a; int a; int a;
int cifracontrol(int x) int cifracontrol(int x) int cifradecontrol(int x)
{ { {
int s; while(x>9) if(x%9==0)
while(x>9) x=x/10+x%10; return 9;
{ return x; else
s=0; return x%9;
while(x!=0) } }
{ int main() int main()
s=s+x%10; { {
x=x/10; cin>>a; cin>>a;
} cout<<cifracontrol(a); cout<<cifradecontrol(a);
x=s; return 0; }
} }
return x;
}
int main()
{
cin>>a;
cout<<cifracontrol(a);

return 0;
}
Descompunerea în factori primi Afisarea divizorilor unui număr Determinarea numărului de divizori
#include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;
int a; int a; int n;
void descompunerefactori(int x) void afisareadivizorilor(int x) int nrdiv(int x)
{ int d=2, p; { {
while (x!=1) int d; int nr,d;
{ for(d=1; d<=x/2; d++) nr=0;
if (x%d==0) if(x%d==0) for(d=1; d*d<x; d++)
{ cout<<d<<" "; {
p=0; cout<<x; if(x%d==0)
while (x%d==0) } nr=nr+2;
{ int main() }
p++; { if(d*d==x)
x=x/d; cin>>a; nr=nr+1;
} afisareadivizorilor(a); return nr;
cout<<d<<"^"<<p<<endl; return 0; }
} } int main()
d++; {
if (d*d>x) cin>>n;
d=x; cout<< nrdiv(n);
} return 0;
} }
int main()
{
cin>>a;
descompunerefactori(a);
return 0;
}
Generarea şirului lui Fibonacci Formula lui Euler
nrDivizori(n)=(f1+1)(f2+1)…(fk+1)
#include<iostream> #include <iostream>
using namespace std; using namespace std;
int a; int a;
void sirfibonacci(int n) int nrdivizori(int x)
{ int x=1,y=1,z,i;
{ int nr=0, p=1, d=2;
if(n==1)
while(x!=1)
cout<<x;
else if(n==2) { if(x%d==0)
cout<<x<<' '<<y; { nr=0;
else while(x%d==0)
{ cout<<x<<' '<<y<<' '; { nr++;
for(i=3; i<=n; i++) x=x/d;
{ }
z=x+y; p=p*(nr+1);
cout<<z<<' '; }
x=y; d++;
y=z;
if(d*d>x)
}
d=x; }
}
} return p;
int main() }
{ int main()
cin>>a; { cin>>a;
sirfibonacci(a); cout<<nrdivizori(a);
return 0; return 0;}
}

You might also like