Sunteți pe pagina 1din 3

/ Suma cifrelor lui n // Inversul lui n // Numarul PRIM // Multimea divizorilor

#include<iostream.h> #include<iostream.h> #include<iostream.h> proprii ai lui n, adica in


int n,s,c; int n, inv,c; int n, ok, d; afara de 1 si n
void main() void main() void main() #include<iostream.h>
{ { { int n,d;
cout<<"n="; cout<<"n="; cin>>n; void main()
cin>>n; cin>>n; d=2; ok=1; {
while(n!=0) inv=0; while(d<=n/2&&ok==1) cin>>n;
{ while(n!=0) if(n%d==0) d=2;
c=n%10; // extrag ultima { ok=0; while(d<=n/2)
cifra c=n%10; else {
s=s+c; inv=inv*10+c; d++; if(n%d==0)
n=n/10; // tai ultima cifra n=n/10; if(ok==1) cout<<d<<" "; // afisez
} } cout<<"Prim"; divizorii proprii ai lui n,
cout<<"Suma cout<<"Inversul="<<inv else care se pot gasi in [2,n/2]
cifrelor="<<s; ; cout<<"Nu"; d++;
} } } }
// Descompunerea in }
// Numarul de cifre ale // Palindrom factori primi
lui n #include<iostream.h> #include<iostream.h> // CMMDC a 2 nr a si b
#include<iostream.h> int n,inv, c, copie; void main() #include<iostream.h>
int n, nr; void main() { int a,b;
void main() { int a,d,p; void main()
{ cout<<"n="; cout<<"=a"; {
cout<<"n="; cin>>n; cin>>a; cin>>a>>b;
cin>>n; copie=n; d=2; while(a!=b)
while(n!=0) while(n!=0) while(a>1) if(a>b)
{ { { a=a-b;
nr=nr+1; c=n%10; p=0; else
n=n/10; // tai cifrele inv=inv*10+c; while(a%d==0) b=b-a;
} n=n/10; { cout<<"CMMDC="<<a;
cout<<"Nr. de } p=p+1; }
cifre="<<nr; if(copie==inv) a=a/d;
} cout<<"Palindrom"; }
else if(p) // <=> if(p!=0)
cout<<"Nu"; cout<<d<<"^"<<p<<" ";
} d++;
}}

/
/ CMMMC
#include<iostream.h>
int a,b,x,y;
void main()
{
cin>>x>>y;
a=x; b=y;
while(x!=y)
if(x>y)
x=x-y;
else y=y-x;
cout<<"CMMC="<<(a*b)/x;}
CĂUTAREA BINARĂ cin>>a[i];
#include<iostream.h> }
#include<math.h> for(i=1;i<=n;i++)
int v[25]; {
int i,n,li,ls,mij,gasit,x; cout<<"b["<<i<<"]=";
void main() cin>>b[i];
{ }
cout<<"n="; //Interclasarea
cin>>n; i=1;
cout<<"Cauta elementul ="; j=1;
cin>>x; k=0;
for(i=1;i<=n;i++) while((i<=m)&&(j<=n))
{cout<<"v["<<i<<"]="; cin>>v[i];} {if(a[i]<b[j])
for(i=1;i<=n;i++) {
cout<<v[i]<<" "; k++;
cout<<endl; c[k]=a[i]; // adaug la sirul c un element din a
li=1; //limita inferioara i++;
ls=n; //limita superioara }else {
gasit=0; k++;
// Cautarea binara are loc numai in cazul in care c[k]=b[j];
tabloul este ordonat crescator j++;
while((li<=ls)&&(!gasit)) }}
{ // Adaugam elementele ramase neparcurse
mij=floor((li+ls)/2); //aflam indicele care reprezinta if(i<=m)
mijlocul tabloului. {
if(x==v[mij]) while(i<=m)
{ {
cout<<"L-am gasit pe pozitia "<<mij; k++;
gasit=1; c[k]=a[i]; // copiez la sfarsitul sirului c elementele
} ramase din a
else if(x>v[mij]) // Cautare se face in dreapta i++;
li=mij+1; // Actualizare li }
else ls=mij-1; // Cautarea se face in stanga }
} if(j<=n)
if(gasit==0) {
cout<<x<<"Elementul cautat nu se gaseste in tablou"; while(j<=n)
} {
k++;
INTERCLASAREA A DOI VECTORI c[k]=b[j]; // copiez la sfarsitul sirului c elementele
// Interclasarea a doua tablouri unidimensionala in C+ ramase din b
+ j++;
#include<iostream.h> }
int a[25],b[25],c[50]; }
int n,m,i,j,k; //Afisez vectorul interclasat
void main(void) for(i=1;i<=k;i++) // sirul c are lungimea k=m+n
{ cout<<c[i]<<" ";
cout<<"Introduceti lungimile celor 2 vectori a si b= "; }
cin>>m>>n;
//Cititi elementele celor 2 vectori ordonati crescatori
for(i=1;i<=m;i++)
{
cout<<"a["<<i<<"]=";
SORTARE
#include<iostream.h>
int v[25];
int i, n, ok, aux;
void main()
{
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"v["<<i<<"]=";
cin>>v[i];
}
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
//Sortarea crescatoare
do
{
ok=1;
for(i=1;i<=n-1;i++)
if(v[i]>v[i+1])
{
//Interschimbare
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=0;
}
}while(ok!=1);
cout<<endl;
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
}

S-ar putea să vă placă și