0% found this document useful (0 votes)
26 views7 pages

Algoritmi Elementari PDF

The document contains algorithms for several elementary operations including: 1) Swapping two variables with and without using an auxiliary variable. 2) Checking if a number is prime by testing for divisibility by numbers up to its square root. 3) Factoring a number into prime factors by repeatedly dividing by the smallest prime factor. 4) Summing, multiplying, counting digits, finding the inverse, and checking for palindromes of a number.

Uploaded by

VLAD MOCANU
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)
26 views7 pages

Algoritmi Elementari PDF

The document contains algorithms for several elementary operations including: 1) Swapping two variables with and without using an auxiliary variable. 2) Checking if a number is prime by testing for divisibility by numbers up to its square root. 3) Factoring a number into prime factors by repeatedly dividing by the smallest prime factor. 4) Summing, multiplying, counting digits, finding the inverse, and checking for palindromes of a number.

Uploaded by

VLAD MOCANU
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/ 7

Algoritmi elementari

cout<<"a="<<a<<endl;
Algoritmul de interschimbare:
#include <iostream> cout<<"b="<<b<<endl;

using namespace std; break;

int main() default : cout<<"Optiune


gresita!"<<endl;
{
}
int a,b,aux,v;
return 0;
cout<<"a=";
}
cin>>a;
cout<<"b="; Algoritmul de verificare al unui
cin>>b; numar prim:
#include <iostream>
cout<<"Alegeti varianta de rezolvare:
Cu aux <v1>, Fara aux <v2>, Cu swap using namespace std;
<v3> \nv ";
int main()
cin>>v;
{
switch (v)
int n,i,ok;
{
cout<<"n=";
case 1:aux=a;
cin>>n;
a=b;
ok=1;
b=aux;
if(n<=1)
cout<<"a="<<a<<endl;
ok=0;
cout<<"b="<<b<<endl;
else
break;
{
case 2:a=a-b;
for(i=2; i<=n/2; i++)
b=a+b;
if(n%i==0)
a=b-a;
ok=0;
cout<<"a="<<a<<endl;
}
cout<<"b="<<b<<endl;
if(ok==1)
break;
cout<<n<<" este prim"<<endl;
case 3:swap(a,b);
1/7
else Algoritmul de descompunere al
cout<<n<<" nu este prim"<<endl; unui numar in factori primi:
return 0; #include <iostream>

} using namespace std;


int main()
Divizori unui numar:
#include <iostream> {

using namespace std; int n,fp,p;

int main() cout<<"n=";

{ cin>>n;

long int n,s,p,c,d; fp=2;

cout<<"n="; while(n!=1)

cin>>n; {

s=0; p=0;

p=1; while(n%fp==0)

c=0; {

for(d=1; d<=n; d++) n/=fp;

if(n%d==0) p++;

{ }

cout<<"d="<<d<<endl; if(p!=0)

s+=d; cout<<fp<<" la puterea


"<<p<<endl;
p*=d;
fp++;
c++;
}
}
return 0;
cout<<"s="<<s<<endl;
}
cout<<"p="<<p<<endl;
cout<<"c="<<c<<endl; Suma, produsul, cate cifre,
return 0;
inversul si verificare de
palindrom al unui numar:
}
#include <iostream>
using namespace std;
int main()

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

You might also like