You are on page 1of 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