Colectie Pb Rez c++

31
Se citeste un numar natural de maxim 9 cifre. Sa se afiseze cea mai mare si cea mai mica cifra din numar. #include<iostream.h> void main() { int c,min=10,max=0; long n; cin>>n; while(n) {c=n%10; if(c>max) max=c; else if(c<min) min=c; n=n/10; } cout<<min<<" "<<max; } Se citeste un numar natural n de maxim 9 cifre. Sa se determine daca el are toate cifrele ordonate strict descrescator de la cifra cea mai semnificativa spre cifra unitatilor. Ex: Pentru 54321 se va afisa DA, iar pentru 543234 se va afisa NU. #include<iostream.h> void main() {long n; int c,d,p=1; d=0; cin>>n; while(n) {c=n%10; if(c<d) p=0; n=n/10; d=c; } if(p==1) cout<<"da"; else cout<<"nu"; }

Transcript of Colectie Pb Rez c++

Page 1: Colectie Pb Rez c++

Se citeste un numar natural de maxim 9 cifre. Sa se afiseze cea mai mare si cea mai mica cifra din numar.

#include<iostream.h>void main(){ int c,min=10,max=0; long n; cin>>n; while(n) {c=n%10; if(c>max) max=c; else if(c<min) min=c; n=n/10; } cout<<min<<" "<<max;}

Se citeste un numar natural n de maxim 9 cifre. Sa se determine daca el are toate cifrele ordonate strict descrescator de la cifra cea mai semnificativa spre cifra unitatilor. Ex: Pentru 54321 se va afisa DA, iar pentru 543234 se va afisa NU.

#include<iostream.h>void main() {long n; int c,d,p=1; d=0; cin>>n; while(n) {c=n%10; if(c<d) p=0; n=n/10; d=c; } if(p==1) cout<<"da"; else cout<<"nu"; }

Se citeste un numar natural cu cel mult 4 cifre. Sa se calculeze cel mai mic multiplu par al numarului obtinut din prima si ultima cifra a numarului citit. Ex. pentru 1265 se obtine 30 (2*15)

#include<iostream.h>

int main(){ int n,p,u; cin>>n;

Page 2: Colectie Pb Rez c++

u=n%10; while(n>9) n=n/10; p=n; cout<<(p*10+u)*2; return 0;

Se citeste un numar natural n cu cel mult 9 cifre. Sa se calculeze numarul obtinut din cifrele lui pare aflate pe pozitii impare, numararea pozitiilor cifrelor incepand cu cifra cea mai semnificativa. Ex: daca n=2346561 rezulta 24

#include<iostream.h>

int main(){ long n,r=0; cin>>n; while(n) { r=r*10+n%10; n=n/10; } while(r) { if(r%2==0) n=n*10+r%10; r=r/100; } cout<<n;}

Se citeste un numar natural cu cel mult 9 cifre. Sa se determine de cate ori apare ultima cifra in numarul citit.

#include<iostream.h>

int main(){ long n,k=0,c; cin>>n; c=n%10; while(n) { if(n%10==c) k++; n=n/10; } cout<<k; return 0;}

Page 3: Colectie Pb Rez c++

Se citeste un numar natural n cu cel mult 9 cifre. Sa se determine cea mai mare cifra a lui n si de cate ori apare ea in n.

#include<iostream>using namespace std;int main(){

int n,k=0,cmax=0;cin>>n;while(n>0){

if(n%10>cmax) { cmax=n%10; k=1; }else if(n%10==cmax) k++;n=n/10;

}cout<<cmax<<" "<<k;return 0;

}

Se considera urmatorul sir de numere: 1, 1, 2, 2, 1, 2, 3, 3, 3, 1, 2, 3, 4, 4, 4, 4, ... .Pentru un numar natural n de maxim 4 cifre sa se scrie un program eficient ca timp de executie si utilizare a memoriei care sa determine elementul de pe pozitia n din sirul definit mai sus.

#include<iostream.h>#include<math.h>

int main(){ int n,k; cin>>n; k=sqrt(n); if(k*k==n) cout<<k; else if(n-k*k<=k+1) cout<<n-k*k; else cout<<k+1; return 0; }

Se citeste un numar natural n de maxim 4 cifre. Sa se calculeze si sa se afiseze termenii din sirul lui Fibonacci care sunt mai mici decat n.

#include<iostream.h>

int main(){ int x,y,z,n; cin>>n; x=1;y=1;cout<<"1 1 "; while(x+y<n) {

z=x+y;

Page 4: Colectie Pb Rez c++

cout<<z<<" "; x=y; y=z;

}}

Se citesc n numere naturale. Sa se afiseze ce mai mare numar prim si de cate ori apare el.

#include<iostream>

using namespace std;

int main(){int n,x,ok,max=0, nrap,i,d; cin>>n; for(i=1;i<=n;i++) { cin>>x; ok=1; if(x==0 || x==1) ok=0; else for(d=2;d<=x/2;d++) if(x%d==0) ok=0; if(ok) if(x>max) { max=x; nrap=1; } else if(x==max) nrap++; } cout<<max<<" "<<nrap; system("pause"); return 0;}

Se citesc 2 numere naturale a si b. Sa se afiseze cel care mai multe cifre 1 in scrierea in baza 2.

#include<iostream>

using namespace std;

int main(){int x,y,a,b,sa=0,sb=0; cin>>a>>b; x=a;y=b; while(a>0) { sa=sa+a%2; a=a/2; } while(b>0) { sb=sb+b%2; b=b/2;

Page 5: Colectie Pb Rez c++

} if(sa>sb) cout<<x; else cout<<y; system("pause"); return 0;}

Se citeste un numar natural n cu cel mult 3 cifre si o baza b cuprinsa intre 2 si 9. Sa se afiseze reprezentarea lui n in baza b. Se vor folosi doar variabile de tipuri simple.

#include<iostream>

using namespace std;

int main(){int n,b; long r,p; cin>>n>>b; r=0; p=1; while(n!=0) { r=r+n%b*p; p=p*10; n=n/b; } cout<<r; system("pause"); return 0;}

Se se afiseze primele n numere prime, n numar natural citit de la tastatura.

#include<iostream>

using namespace std;

int main(){int n,d,ok,x,k; cin>>n; x=2; k=0; while(k<n) { ok=1; for(d=2;d<=x/2;d++) if(x%d==0) ok=0; if(ok) { cout<<x<<" ";

Page 6: Colectie Pb Rez c++

k++; } x++; } system("pause"); return 0;}

Se citesc numere de la tastatura pana la primul numar prim citit. Sa se afiseze acest numar, iar pentru fiecare celelalte se sa afiseze mesajul "nu e prim".

#include<iostream>

using namespace std;

int main(){int n,d,ok; do { cin>>n; ok=1; if(n==0 || n==1) ok=0; else for(d=2;d<=n/2;d++) if(n%d==0) ok=0; if(!ok) cout<<"nu e prim"; } while(!ok); cout<<n; system("pause"); return 0;}

Sa se descompuna in factori primi un numar natural n si sa se afiseze factorii si puterile la care apar ei in descompunere.

#include<iostream>

using namespace std;

int main(){int n,d,p; cin>>n; d=2; while(n>1) { if(n%d==0) { p=0; while(n%d==0) { p++; n=n/d; } cout<<d<<" la " <<p<<endl;

Page 7: Colectie Pb Rez c++

} else d++; } system("pause"); return 0;}

Se citesc 2 numere naturale a si n cu maxim 8 cifre fiecare. Sa se calculeze ultima cifra a numarului a ridicat la puterea n.

#include<iostream>

using namespace std;

int main(){ unsigned int n,a; cin>>a>>n; a=a%10; if(n%4==1) cout<<a; else if(n%4==2) cout<<a*a%10; else if(n%4==3) cout<<a*a*a%10; else if(n%4==0) cout<<a*a*a*a%10; system("pause"); return 0;}

#include<iostream>using namespace std;

int main(){

int n,imp,par;cout<<"n="; cin>>n;par=imp=0;while(n>0){

if(n%2==0) par++;else imp++;n=n/10;

}cout<<par<<" pare si "<<imp<<" impare";return 0;

}

Sa se elimine dintr-un numar natural n toate cifrele pare.

Page 8: Colectie Pb Rez c++

#include<iostream>using namespace std;int main(){

int n,r;cout<<"n="; cin>>n;r=0;while(n>0){

if(n%10%2!=0) r=r*10+n%10;n=n/10;

}

while(r>0){

n=n*10+r%10;r=r/10;

}cout<<n;

}

Se citeste un numar natural n. Sa se calculeze si sa se afiseze rasturnatul (oglinditul) lui n.

#include<iostream>using namespace std;int main(){

int n,r;r=0;cout<<"n="; cin>>n;while(n>0){

r=r*10+n%10;n=n/10;

}cout<<"rasturnatul este "<<r;return 0;

}

Se citeste un numar natural n. Sa se verifice daca este palindrom (citit de la dreapta spre stanga are aceeasi valoare). Exemplu: 123321 este palindrom, iar 12322 nu este

#include<iostream.h>using namespace std;int main(){

int n,r,c;r=0;cout<<"n="; cin>>n;c=n;//copiewhile(n>0)

Page 9: Colectie Pb Rez c++

{ r=r*10+n%10; n=n/10;}if(r==c) cout<<"este palindrom";else cout<<"nu este palindrom";return 0;

}

Se citeste un numar natural n cu cel putin 3 cifre. Sa se calculeze si sa se afiseze numarul obtinut din n prin eliminarea primei si a ultimei cifre. Exemplu: n=34255 rezulta n=425

#include<iostream>using namespace std;int main(){

int n,r;cout<<"n="; cin>>n;n=n/10;r=0;while(n>0){

r=r*10+n%10;n=n/10;

}r=r/10;while(r>0){

n=n*10+r%10;r=r/10;

}cout<<n;return 0;

}

Se citesc 2 numere naturale a si b. Sa se determine cate cifre egale se afla pe pozitii indentice in cele doua numere. Exemplu: a=3421345 b=4531125 cifre egale pe pozitii identice sunt cifra unitatilor si cea a miilor, deci doua.

#include<iostream>using namespace std;int main(){

int a,b,c;cout<<"a="; cin>>a;cout<<"b="; cin>>b;c=0;

Page 10: Colectie Pb Rez c++

while(a>0 && b>0){ if(a%10==b%10) c++; a=a/10; b=b/10;}cout<<c;return 0;

}

Sa se descompuna un numar natural n in toate modurile ca suma de doua numere prime. Daca nu exista nici o descompunere, atunci sa se afiseze mesajul Imposibil.

#include<iostream>using namespace std;int main(){

int n,x,y,p,d,ok=0;cout<<"n="; cin>>n;

for(x=2;x<=n/2;x++){

p=1;for(d=2;d<=x/2;d++)

if(x%d==0) p=0;y=n-x;for(d=2;d<=y/2;d++)

if(y%d==0) p=0;if(p) { cout<<x<<" "<<y<<endl;

ok=1;}

}if(!ok) cout<<"imposibil";return 0;

}

Un numar se numeste perfect daca este egal cu suma divizorilor sai mai mici decat el, de exemplu 6=1+2+3. Sa se afiseze toate numerele perfecte mai mici sau egale cu un numar n citit de la tastatura.

#include<iostream>using namespace std;int main(){

int n,s,d,x;cin>>n;for(x=1;x<=n;x++){

s=0;for(d=1;d<x;d++)

if(x%d==0) s=s+d;if(s==x) cout<<x<<" ";

Page 11: Colectie Pb Rez c++

}return 0;

}

Se citesc doua numere naturale a si b, fiecare avand cifrele distincte. Determinati cate cifre comune au cele 2 numere. Exemplu: a=23416 si b=345987 au 2 cifre comune (3 si 4)

#include<iostream>using namespace std;int main(){

int a,b,b1,c;cout<<"a="; cin>>a;cout<<"b="; cin>>b;c=0;while(a>0){

b1=b;while(b1>0){ if(b1%10==a%10) c++; b1=b1/10;}a=a/10;

}cout<<c;return 0;

Se citeste un numar natural n avand numar impar de cifre. Sa se elimine din numarul n cifra din mijloc si sa se afiseze numarul rezultat.

#include<iostream>using namespace std;int main(){

int n,n1,p,c,i;cout<<"n="; cin>>n;n1=n;c=0;while(n>0) {

c++;n=n/10;

}p=1;for(i=1;i<=c/2;i++) p=p*10;n=n1/(p*10)*p+n1%p;cout<<n;return 0;

}

Page 12: Colectie Pb Rez c++

sau

#include<iostream>using namespace std;int main(){

int n,nr,r,x,i;cout<<"n="; cin>>n;nr=0;x=n;while(x>0){

nr++;x=x/10;

}r=0;for(i=1;i<=nr/2;i++) {

r=r*10+n%10;n=n/10;

}n=n/10;while(r>0){

n=n*10+r%10;r=r/10;

}cout<<n;

}

Se citeste un numar natural n si o cifra c. Calculati de cate ori apare cifra c in scrierea numerelor naturale de la 1 la n.

#include<iostream>using namespace std;int main(){

int n,c,nr,x,y;cout<<"n="; cin>>n;cout<<"c="; cin>>c;nr=0;for(x=1;x<=n;x++){

y=x;while(y>0){

if(y%10==c) nr++;y=y/10;

}}cout<<nr;return 0;

Page 13: Colectie Pb Rez c++

Sa se afiseze toate perechile numere naturale x si y din intervalul [1,n] care sunt prime si consecutive in multimea numerelor impare. De exemplu, de la 1 la 15 avem perechile: 3 5 5 7 11 13

#include<iostream>using namespace std;int main(){ int n, x, y,px,py,d; cout<<"n="; cin>>n; for(x=3;x<=n-2;x=x+2) {

y=x+2; px=1; for(d=3;d<=x/2;d=d+2)

if(x%d==0) px=0; py=1; for(d=3;d<=y/2;d=d+2) if(y%d==0) py=0; if(px==1 && py==1) cout<<x<<" "<<y<<endl; } return 0;}

Se citeste un numar natural n. Sa se determine daca el are cifrele ordonate crescator sau descrescator sau cifrele lui nu sunt ordonate.

#include<iostream>using namespace std;int main(){

int n,c,d;c=d=1;cin>>n;while(n>9){

if(n%10>=n/10%10) d=0;if(n%10<=n/10%10) c=0;

n=n/10;}if(c==1) cout<<"crescator";else if (d==1) cout<<"descrescator"; else cout<<"nici";return 0;

}

Sa se calculeze cmmdc al 3 numere a, b si c fara a calcula cmmdc a doua dintre ele si apoi

Page 14: Colectie Pb Rez c++

cu al treilea.

#include<iostream>using namespace std;int main(){

int a,b,c,min;cout<<"a="; cin>>a;cout<<"b="; cin>>b;cout<<"c="; cin>>c;while(a!=b || a!=c || b!=c)

{min=a;if(b<min) min=b;if(c<min) min=c;if(a!=min) a=a-min;if(b!=min) b=b-min;if(c!=min) c=c-min;

}cout<<a;return 0;

}

Cifra de control a unui numar n se numeste cifra obtinuta calculand repetat suma cifrelor lui n si inlocuidu-l pe n cu suma calculata. Pentru un numar natural n afisati cifra lui de control. Exemplu: pentru n=3429 calculam suma cifrelor 18, iar suma cifrelor lui 18 este 9, deci 9 este cifra de control a lui 3429.

#include<iostream>using namespace std;

int main(){

int n,s;cout<<"n=";cin>>n;while(n>9){

s=0;while(n>0){

s=s+n%10;n=n/10;

}n=s;

}cout<<n;

}

Page 15: Colectie Pb Rez c++

Se citeste un numar natoral n. Afisati cifrele distincte ale lui n (in orice ordine). Exemplu: Cifrele distincte ale lui 234542 sunt 2, 3, 4 si 5.

#include<iostream>using namespace std;int main(){

int n,r,c;cout<<"n="; cin>>n;while(n>0){

c=n%10;cout<<c;r=0;while(n>0){

if(n%10!=c) r=r*10+n%10;n=n/10;

}n=r;

}return 0;

}

sau

#include<iostream>using namespace std;

int main(){

int n,c,g,m;cin>>n;for(c=0;c<=9;c++){

m=n;g=0;while(m>0){

if(m%10==c) g=1;m=m/10;

}if(g) cout<<c<<" ";

}return 0;

}

Se citesc 2 numere naturale a si b. Afisati toate perechile de numere x si y din intervalul [a,b] care au proprietatea ca au acelasi numar de divizori.

#include<iostream>using namespace std;int main(){

Page 16: Colectie Pb Rez c++

int a,b,x,y,ndx,ndy,d;cin>>a>>b;for(x=a;x<=b;x++)

for(y=x+1;y<=b;y++){

ndx=0;for(d=1;d<=x;d++)

if(x%d==0) ndx++;ndy=0;for(d=1;d<=y;d++)

if(y%d==0) ndy++;if(ndx==ndy) cout<<x<<" "<<y<<endl;

}return 0;

}

Cifra de control a unui numar n se numeste cifra obtinuta calculand repetat suma cifrelor lui n si inlocuidu-l pe n cu suma calculata. Exemplu: pentru n=3429 calculam suma cifrelor 18, iar suma cifrelor lui 18 este 9, deci 9 este cifra de control a lui 3429. Dandu-se un numar natural n si o cifra x, afisati primele n numere naturale care au cifra de control egala cu x. Exemplu: pentru n=5 si x=7 se vor afisa numerele 7, 16, 25 , 34 si 43.

#include<iostream>using namespace std;

int main(){ int n,x,a; cout<<"n="; cin>>n; cout<<"x="; cin>>x; for(a=x;a<=x+(n-1)*9;a=a+9)

cout<<a<<" "; return 0;

}

Se citeste un numar natural n. Introduceti semnul * in numar astfel incat produsul obtinut sa fie maxim. Exemplu: n=4322, produsul maxim se obtine astfel: 4*322=1288. (celelalte variante: 43*22=946 sau 432*2=864 dau produs mai mic)

#include<iostream>using namespace std;int main(){

Page 17: Colectie Pb Rez c++

int n,p,pp,pmax=0;cout<<"n="; cin>>n;p=10;while(p<=n){

if(n/p*(n%p)>pmax){ pmax=n/p*(n%p); pp=p;}p=p*10;

}cout<<n/pp<<"*"<<n%pp<<"="<<pmax;return 0;

}

Se citeste un numar natural n si apoi n numere naturale. Afisati numarul total de cifre care compun numerele prime dintre cele n citite.

#include<iostream>using namespace std;int main(){

int n,i,x,p,d,nc,nt=0;cout<<"n="; cin>>n;for(i=1;i<=n;i++){

cout<<"x="; cin>>x;p=1;if(x==0 || x==1) p=0;else for(d=2;d<=x/2;d++)

if(x%d==0) p=0;if(p==1){

nc=0;while(x>0){

nc++;x=x/10;

}nt=nt+nc;

}}cout<<nt;return 0;

}

Se citeste un numar natural n. Afisati primele n perechi de numere prime care sunt consecutive in multimea numerelor impare. Exemplu: pentru n=3 se afiseaza 3 5 5 7 11 13

Page 18: Colectie Pb Rez c++

#include<iostream>using namespace std;int main(){

int n,k,p,d,x,y;cin>>n;x=3;k=0;while(k<n){

p=1;for(d=2;d<=x/2;d++)

if(x%d==0) p=0;if(p==1){

y=x+2;for(d=2;d<=y/2;d++)

if(y%d==0) p=0;}if(p==1){

cout<<x<<" "<<y<<endl;k++;

}x=x+2;

}return 0;

}

Se citeste un numar natural n. Afisati cele 2 numere obtinute prin impartirea "la mijloc" a numarului n. Exemple: n=12345 se afiseaza 12 si 345 n= 12345678 se afiseaza 1234 5678

#include<iostream>using namespace std;int main(){

int n,x,p,nc,i;cin>>n;x=n;nc=0;while(x){ nc++; x=x/10;}if(nc%2==0) nc=nc/2;else nc=nc/2+1;p=1;for(i=1;i<=nc;i++) p=p*10;cout<<n/p<<" "<<n%p;return 0;

}

Page 19: Colectie Pb Rez c++

Sa se afiseze cifra care apare de cele mai multe ori intr-un numar natural n si de cate ori apare ea in n. Exemplu: n=133121 se afiseaza 1 3

#include<iostream>using namespace std;int main(){

int n,x,c,k,m=0,cmax;cin>>n;for(c=0;c<=9;c++){

x=n;k=0;while(x>0){

if(x%10==c) k++;x=x/10;

}if(k>m) {

m=k;cmax=c;

}}cout<<cmax<<" "<<m;return 0;

}

Se citeste un numar natural n cu numar par de cifre. Calculati si afisati numarul obtinut din n inversand cifra unitatilor cu a zecilor, cea a sutelor cu cea a miilor, etc. Exemplu: n=123456 rezulta 214365.

#include<iostream>using namespace std;int main(){

int n,r;cin>>n;r=0;while(n>0){

r=r*100+n%100;n=n/100;

}while(r>0){

n=n*10+r%10;r=r/10;

}cout<<n;return 0;

Page 20: Colectie Pb Rez c++

}

Se citeste un numar natural n si apoi n numere naturale cu maxim 4 cifre fiecare. Calculati si afisati numarul obtinut prin lipirea la numarul maxim a numarului minim dintre cele n numere citite. Exemplu: n=4 si numerele 56 234 2321 345, numarul rezultat va fi 232156.

#include<iostream>using namespace std;

int main(){

int n,i,x,maxx=-10000, minn=10000,r=0;cin>>n;for(i=1;i<=n;i++){

cin>>x;if(x>maxx) maxx=x;if(x<minn) minn=x;

}while(minn>0){

r=r*10+minn%10;minn=minn/10;

}while(r>0){

maxx=maxx*10+r%10;r=r/10;

}cout<<maxx;

}

Calculati si afisati media aritmetica a palindroamelor din intervalul [a,b], a si b citite de la tastatura.

#include<iostream>using namespace std;int main(){

int a,b,x,r,y,s=0,n=0;cin>>a>>b;for(x=a;x<=b;x++){

r=0;y=x;while(y>0){

r=r*10+y%10;

Page 21: Colectie Pb Rez c++

y=y/10;}if(r==x){

s=s+x;n++;

}}if(n==0) cout<<"nu exista palindroame";

else cout<<(float)s/n;return 0;

}

Se citeste un numar natural n. Afisati cel mai mic palindrom mai mare decat n. Exemplu: daca n=1232 se va afisa 1331.

#include<iostream>using namespace std;int main(){

int n,x,r,y;cin>>n;x=n+1;do{

y=x;r=0;while(y>0){ r=r*10+y%10; y=y/10;}if(x!=r) x++;

}while(x!=r);cout<<x;

return 0;}

Se citeste un numar natural k, un numar natural n si apoi n numere naturale. Afisati cel mai mare dintre cele n numere citite care are exact k divizori.

#include<iostream>using namespace std;

int main(){

int k,n,i,x,d,nd,maxx=0;cout<<"k="; cin>>k;cout<<"n="; cin>>n;

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

cin>>x;

Page 22: Colectie Pb Rez c++

nd=0;for(d=1;d<=x;d++)

if(x%d==0) nd++;

if(nd==k)if(x>maxx) maxx=x;

}cout<<maxx;return 0;

}

Afisati toate perechile de numere de la 1 la n care au proprietatea ca au aceeasi suma a cifrelor

#include<iostream>using namespace std;int main(){

int n,i,j,x,y,si,sj;cin>>n;for(i=1;i<=n;i++)

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

x=i;si=0;while(x>0){

si=si+x%10;x=x/10;

}y=j;sj=0;while(y>0){

sj=sj+y%10;y=y/10;

}if(si==sj) cout<<i<<" "<<j<<endl;

}return 0;

}

Se citesc 2 numere naturale a si b, a mai mic decat b. Afisati suma numerelor prime din intervalul [a,b].

#include<iostream>using namespace std;int main(){

int a,b,n,p,d,s=0;cout<<"a="; cin>>a;cout<<"b="; cin>>b;

Page 23: Colectie Pb Rez c++

for(n=a;n<=b;n++){

p=1;for(d=2;d<=n/2;d++)

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

}cout<<s;return 0;

}

Afisati toate numerele mai mici ca un numar n citit de la tastatura care au proprietatea ca sunt încadrate de numere prime (x este incadrat de numere prime daca x+1 si x-1 sunt prime, de exemplu numarul 6).

#include<iostream>using namespace std;int main(){

int n,x,p1,p2,d;cin>>n;for(x=1;x<=n;x++){

p1=1;if(x-1==0 || x-1==1) p1=0;else for(d=2;d<=(x-1)/2;d++)

if((x-1)%d==0) p1=0;p2=1;for(d=2;d<=(x+1)/2;d++)

if((x+1)%d==0) p2=0;if(p1==1 && p2==1) cout<<x<<" ";

}return 0;

}

Se citesc 2 numere naturale a si b, a mai mic decat b. Afisati cel mai mic numar palindrom din intervalul [a,b].

#include<iostream>using namespace std;int main(){

int a,b,x,y,r;cout<<"a="; cin>>a;cout<<"b="; cin>>b;for(x=a;x<=b;x++){

r=0;y=x;while(y>0){

Page 24: Colectie Pb Rez c++

r=r*10+y%10;y=y/10;

}if(r==x)

{ cout<<x; x=b+1;

} }return 0;

}

Se citeste un numar natural n si apoi n numere naturale. Afisati cate dintre ele au suma cifrelor egala cu numarul de lor de ordine de la citire. Exemplu: n=6 si numerele 122 101 34 555 23 123 Se va afisa 3 deoarece numerele care respecta regula sunt 101 , 23 si 123.

#include<iostream>using namespace std;int main(){

int n,i,x,s,k=0;cout<<"n="; cin>>n;for(i=1;i<=n;i++){

cout<<"x="; cin>>x;s=0;while(x){

s=s+x%10;x=x/10;

}if(s==i) k++;

}cout<<k;return 0;

}

Se citeste un numar natural n si apoi n numere naturale. Afisati numerele care au suma cifrelor egala cu suma cifrelor primului numar citit. Ex: se citesc numerele 7 23 78 14 30 32 8 50 se vor afisa 14 32 50

#include <iostream>using namespace std;

Page 25: Colectie Pb Rez c++

int main(){ int i,n,x,y,z,scx,scy; cin>>n; cin>>x; scx=0; while(x>0) {scx=scx+x%10; x=x/10;} for(i=1;i<n;i++) { cin>>y; scy=0; z=y; while(y>0) {scy=scy+y%10; y=y/10;} if(scx==scy) cout<<z<<" "; } return 0;}

Se citeste un numar natural n si apoi n numere naturale. Afisati cate dintre numerele citite au rasturnatul egal cu primul numar citit. Ex: se citesc numerele 7 231 78 132 30 132 8 132 se va afisa 3

int main(){ int i,n,x,y,k=0,r; cin>>n; cin>>x; for(i=1;i<n;i++) { cin>>y; r=0; while(y>0) {r=r*10+y%10; y=y/10;} if(r==x) k++; } cout<<k; return 0;}