You are on page 1of 14

1.

a) nr prime

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("numere.in");
ofstream fout("numere.out");
int main()
{
int n,v[1001],x,i,j,aux[1001],k,ok;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];

k=0;
for(i=1;i<=n;i++)
{
ok=1;
if(v[i]<2)
ok=0;
for(int d=2;d*d<=v[i];d++)
if(v[i]%d==0)
ok=0;

if(ok==1)
{
k++;
v[k]=v[i];
}

}
n=k;
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}

b) nr palindrome

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("numere.in");
ofstream fout("numere.out");
int main()
{
int n,v[1001],x,i,j,aux[1001],k,ok;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];

k=0;
for(i=1;i<=n;i++)
{
int x=v[i];
int inv=0;
while(x!=0)
{
inv=inv*10+x%10;
x=x/10;
}

if(inv==v[i])
{
k++;
v[k]=v[i];
}

}
n=k;
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}

c) nr cu prima cifra para

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("numere.in");
ofstream fout("numere.out");
int main()
{
int n,v[1001],x,i,j,aux[1001],k,ok;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];

k=0;
for(i=1;i<=n;i++)
{
int x=v[i];
while(x>9)
x=x/10;

if(x%2==0)
{
k++;
v[k]=v[i];
}

}
n=k;
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}

d) nr pare

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("numere.in");
ofstream fout("numere.out");
int main()
{
int n,v[1001],x,i,j,aux[1001],k,ok;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];

k=0;
for(i=1;i<=n;i++)
{

if(v[i]%2==0)
{
k++;
v[k]=v[i];
}

}
n=k;
for(i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}

2. vector cu suma cifrelor

#include <iostream>
using namespace std;
int main()
{
int n,v[1001],i,s,x[1001],k,ok;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

for(i=1;i<=n;i++)
{
s=0;
int aux=v[i];
while(aux!=0)
{
s=s+aux%10;
aux=aux/10;
}
x[i]=s;

}
for(i=1;i<=n;i++)
cout<<x[i]<<" ";
return 0;
}

3. maxim pozitie, minim pozitie

#include <iostream>
using namespace std;
int main()
{
int n,v[1001],i,s,x[1001],k,ok,maxim,pmax,minim,pmin;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

pmin=pmax=1;
maxim=minim=v[1];
for(i=1;i<=n;i++)
{
if(v[i]>maxim)
{
maxim=v[i];
pmax=i;
}
if(v[i]<minim)
{
minim=v[i];
pmin=i;
}

cout<<maxim<<pmax<<endl;
cout<<minim<<pmin;
return 0;
}

4. maxim par, minim poz impara

#include <iostream>
#include <climits>
using namespace std;
int main()
{
int n,v[1001],i,s,x[1001],k,ok,maxim,pmax,minim,pmin;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

maxim=INT_MIN;
minim=INT_MAX;
for(i=1;i<=n;i++)
{
if(v[i]%2==0)
{
if(v[i]>maxim)
{
maxim=v[i];
}
}

}
for(i=1;i<=n;i++)
{
if(i%2!=0)
if(v[i]<minim)
minim=v[i];
}

cout<<maxim<<endl;
cout<<minim;
return 0;
}

5. suma elemente impare aflate intre primul si ultimul element par

//suma elemente impare aflate intre primul si ultimul element par


#include <iostream>
using namespace std;
int main()
{
int n,v[1001],i,s,primul,ultimul,p,u;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

s=0;
primul=ultimul=-1;
p=u=-1;

//aflam primul si ultimul elem par

for(i=1;i<=n;i++)
{
if(v[i]%2==0)
{
ultimul=v[i];
u=i;
if(p==-1)
{
p=i;
primul=v[i];
}
}
}

//suma elemente impare


for(i=p;i<=u;i++)
{
if(v[i]%2!=0)
s=s+v[i];
}

cout<<s;
return 0;
}

6. suma elem intre primul si ultimul prim

// suma elem intre primul si ultimul prim


#include <iostream>
using namespace std;
int main()
{
int n,v[1001],i,s,primul,ultimul,p,u,ok,d;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

s=0;
primul=ultimul=-1;
p=u=-1;

//aflam primul si ultimul elem prim

for(i=1;i<=n;i++)
{
//alg verificare nr prim
ok=1;
if(v[i]<2)
ok=0;
for(d=2;d*d<=v[i];d++)
if(v[i]%d==0)
ok=0;

if(ok==1)
{
ultimul=v[i];
u=i;
if(p==-1)
{
p=i;
primul=v[i];
}
}
}

//suma elemente dintre prime


for(i=p;i<=u;i++)
{
s=s+v[i];
}

cout<<s;
return 0;
}

7. circular stanga cele dinaintea max, circular dreapta cele de dupa max

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,i,n,maxim,pmax,k,t;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

//aflam maxim
maxim=v[1];
pmax=1;
for(i=1;i<=n;i++)
if(v[i]>maxim)
{
maxim=v[i];
pmax=i;
}

//permutam stanga elementele pana la maxim


t=v[1];
for(i=2;i<=pmax-1;i++)
v[i-1]=v[i];
v[pmax-1]=t;

//permutam dreapta elementele de dupa maxim


k=v[n];
for(i=n-1;i>=pmax+1;i--)
v[i+1]=v[i];
v[pmax+1]=k;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

!! fara sa mut maximul

8. eliminare primul element par

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,i,n,p,k,t;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

p=-1;
for(i=1;i<=n;i++)
{
if((v[i]%2==0)&&p==-1)
{
p=i;

}
}

for(i=p+1;i<=n;i++)
v[i-1]=v[i];
n--;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

9. eliminare ultimul element par

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,i,n,p,k,t;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

p=-1;
for(i=n;i>=1;i--)
{
if((v[i]%2==0)&&p==-1)
{
p=i;

}
}

for(i=p+1;i<=n;i++)
v[i-1]=v[i];
n--;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

10. inserare dupa primul element par dublul sau

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

p=-1;
for(i=1;i<=n;i++)
if(v[i]%2==0)
if(p==-1)
{
p=i;
aux=v[i];
}

for(i=n;i>=p+1;i--)
v[i+1]=v[i];
v[p+1]=2*aux;
n++;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

11. inserare dupa ultimul element par

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
p=-1;
for(i=n;i>=1;i--)
if(v[i]%2==0)
if(p==-1)
{
p=i;
aux=v[i];
break;
}

for(i=n;i>=p+1;i--)
v[i+1]=v[i];
v[p+1]=2*aux;
n++;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

12. circular stanga primele k elemente

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t;
cin>>n>>k;
for(i=1;i<=n;i++)
cin>>v[i];

t=v[1];
for(i=2;i<=k;i++)
v[i-1]=v[i];
v[k]=t;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

13. circular stanga ultimele k elemente

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t;
cin>>n>>k;
for(i=1;i<=n;i++)
cin>>v[i];

t=v[k];
for(i=k+1;i<=n;i++)
v[i-1]=v[i];
v[n]=t;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

14. circular dreapta primele k elemente.

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t;
cin>>n>>k;
for(i=1;i<=n;i++)
cin>>v[i];

t=v[k];
for(i=k-1;i>=1;i--)
v[i+1]=v[i];
v[1]=t;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

15. circular dreapta ultimele k elemente

#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t;
cin>>n>>k;
for(i=1;i<=n;i++)
cin>>v[i];

t=v[n];
for(i=n-1;i>=k;i--)
v[i+1]=v[i];
v[k]=t;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

16. eliminare numere prime

VARIANTA 1 - CONDITIE PASTRARE


#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t,ok;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

k=0;
for(i=1;i<=n;i++)
{
ok=1;
if(v[i]<2)
ok=0;
for(p=2;p*p<=v[i];p++)
if(v[i]%p==0)
ok=0;

if(ok==0)
{
k++;
v[k]=v[i];
}
}

for(i=1;i<=k;i++)
cout<<v[i]<<" ";
return 0;
}
VARIANTA 2 - CONDITIE ELIMINARE
#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t,ok;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

k=0;
for(i=1;i<=n;i++)
{
ok=1;
if(v[i]<2)
ok=0;
for(p=2;p*p<=v[i];p++)
if(v[i]%p==0)
ok=0;

if(ok==1)
{
for(t=i+1;t<=n;t++)
v[t-1]=v[t];
n--;
i--;
}
}

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

17. inserare dupa fiecare nr palindrom a valorii 5

VARIANTA 1
#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t,ok,w[2002];
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

k=0;
for(i=1;i<=n;i++)
{
k++;
w[k]=v[i];

aux=v[i];
int inv=0;
while(aux!=0)
{
inv=inv*10+aux%10;
aux=aux/10;
}

if(inv==v[i])
{
k++;
w[k]=5;
}
}
n=k;
for(i=1;i<=n;i++)
cout<<w[i]<<" ";
return 0;
}

VARIANTA 2
#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,aux,t,ok,w[2002];
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

for(i=1;i<=n;i++)
{

aux=v[i];
int inv=0;
while(aux!=0)
{
inv=inv*10+aux%10;
aux=aux/10;
}

if(inv==v[i])
{
for(t=n;t>=i+1;t--)
v[t+1]=v[t];
v[i+1]=5;
n++;
i++;
}
}
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

18. inserare inaintea fiecarui numar par


#include <iostream>
using namespace std;
int main()
{
int v[1001],x,k,n,p,i,t,ok,aux[2002];
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

k=0;
for(i=1;i<=n;i++)
{
if(v[i]%2==0)
{
k++;
aux[k]=2*v[i];
}
k++;
aux[k]=v[i];
}
n=k;
for(i=1;i<=n;i++)
cout<<aux[i]<<" ";
return 0;
}

19. ??????????

20. cate au suma egala cu suma ultimului

#include <iostream>
using namespace std;
int main()
{
int v[1001],i,n,s,sumultim,sum[1001],x;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];

for(i=1;i<=n;i++)
{
s=0;
x=v[i];
while(x!=0)
{
s=s+x%10;
x=x/10;
}
sum[i]=s;
}
sumultim=sum[n];
int nr=0;
for(i=1;i<n;i++)
{
if(sum[i]==sumultim)
nr++;
}

cout<<nr;
return 0;
}

You might also like