Algoritmi Elementari PDF
Algoritmi Elementari PDF
cout<<"a="<<a<<endl;
Algoritmul de interschimbare:
#include <iostream> cout<<"b="<<b<<endl;
{ cin>>n;
cout<<"n="; while(n!=1)
cin>>n; {
s=0; p=0;
p=1; while(n%fp==0)
c=0; {
if(n%d==0) p++;
{ }
cout<<"d="<<d<<endl; if(p!=0)
2/7
{ c++;
int n,s=0,p=1,c=0,inv=0,aux; n/=10;
char v; }
cout<<"n="; cout<<"c="<<c<<endl;
cin>>n; break;
cout<<"Alegeti varianta: Suma <s>, case 'i':
Produsul <p>, Cate cifre <c>, Inversul
while(n!=0)
<i>, Verificare palindrom <v>, Toate <a>
\nTip: Diacriticile conteaza! \nVarianta:"; {
cin>>v; inv=inv*10+n%10;
switch (v) n/=10;
{ }
case 's': cout<<"inv="<<inv<<endl;
while(n!=0) break;
{ case 'v':
s+=n%10; aux=n;
n/=10; while(aux!=0)
} {
cout<<"s="<<s<<endl; inv=inv*10+aux%10;
break; aux/=10;
case 'p': }
while(n!=0) if(inv==n)
{ cout<<n<<" este
palindrom"<<endl;
p*=n%10;
else
n/=10;
cout<<n<<" nu este
}
palindrom"<<endl;
cout<<"p="<<p<<endl;
break;
break;
case 'a':
case 'c':
aux=n;
while(n!=0)
while(aux!=0)
{
{
3/7
s+=aux%10; for(i=2; i<=n; i++)
p*=aux%10; {
c++; cout<<"a=";
inv=inv*10+aux%10; cin>>a;
aux/=10; if(a<min)
} {
cout<<"s="<<s<<endl; min=a;
cout<<"p="<<p<<endl; k1=1;
cout<<"c="<<c<<endl; }
cout<<"inv="<<inv<<endl; else if(min==a)
break; k1++;
default: if(a>max)
cout<<"Optiune gresita!"<<endl; {
} max=a;
return 0; k2=1;
} }
else if(max==a)
Determinarea min si max dintr-
k2++;
un sir de numere si de cate ori
apar: }
#include <iostream> cout<<max<<" apare de "<<k2<<"
ori."<<endl;
using namespace std;
cout<<min<<" apare de "<<k1<<"
int main()
ori."<<endl;
{
return 0;
int min,max,n,a,i,k1,k2;
}
cout<<"n=";
cin>>n;
Determinarea c.m.m.d.c:
#include <iostream>
cout<<"a=";
using namespace std;
cin>>a;
int main()
min=max=a;
{
k1=k2=1;
int a,b,r,i,min,cm;
4/7
char v; case 'm':
cout<<"a="; if(a<b)
cin>>a; min=a;
cout<<"b="; else
cin>>b; min=b;
cout<<"Alegeti varianta de algoritm for(i=1; i<=min; i++)
Euclid (impartiri repetate) <e>,
if(a%i==0 && b%i==0)
Nicomachus (scaderi repetate) <n>,
Matematic <m>! \nVarianta: "; cm=i;
cin>>v; cout<<"C.m.m.d.c. = "<<cm<<endl;
switch (v) break;
{ default:
case 'e': cout<<"Optiune gresita!"<<endl;
while(b!=0) }
{ return 0;
r=a%b; }
a=b;
Determinarea c.m.m.m.c prin
b=r;
metoda matematica:
} #include <iostream>
cout<<"C.m.m.d.c. = "<<a<<endl; using namespace std;
break; int main()
case 'n': {
while(a!=b) int a,b,max,i,cmmmc;
{ cout<<"a=";
if(a>b) cin>>a;
a-=b; cout<<"b=";
else cin>>b;
b-=a; if(a>b)
} max=a;
cout<<"C.m.m.d.c. = "<<a<<endl; else
break; max=b;
5/7
for(i=max; i<=a*b; i++) while (x!=0)
if(i%a==0 && i%b==0) {
{ inv=inv*10+x%b;
cmmmc=i; x/=b;
break; }
} y=0;
cout<<"C.m.m.m.c. = while (inv!=0)
"<<cmmmc<<endl;
{
return 0;
y=y*10+inv%10;
}
inv/=10;
Algoritmul de transformare al }
unui numar din baza 10 in baza if (k!=0)
b: {
#include <iostream>
y*=((long long
#include <cmath> int)((float)(pow(10,k))));
using namespace std; }
int main() cout<<"The number "<<x1<<" in base
"<<b<<" is "<<y<<"."<<endl;
{
return 0;
long long x,b,y,k,inv,x1;
}
cout<<"The number in base 10 is: ";
cin>>x; Algoritmul de transformare al
cout<<"The base is: "; unui numar din baza b in baza
cin>>b; 10:
#include <iostream>
x1=x;
#include <cmath>
k=0;
using namespace std;
while (x%b==0)
int main()
{
{
k++;
long long x,b,y,i,x1;
x/=b;
cout<<"The base is: ";
}
cin>>b;
inv=0;
6/7
cout<<"Number in base "<<b<<" is: ";
cin>>x;
x1=x;
y=0;
i=0;
while (x!=0)
{
y+=(x%10)*((long long
int)((float)(pow(b,i))));
i++;
x/=10;
}
cout<<"The number "<<x1<<" in base
10 is: "<<y<<endl;
return 0;
}
7/7