Se citesc n numere naturale
a) cate din numerele naturale citite au K cifre pare
b) calculati produsul numerelor citite care verifica proprietatea de palindrom
c) calculati cel mai mare divizor comul dintre primul si ultimul numar citit

va rog mult sa fie structurat si as vrea poza cu rezolvarea sa inteleg mai bine
va rog mult


Răspuns :

#include <iostream>

using namespace std;

int nk,pal=1;

void numereK(int x, int k) {

   int contor=0;

   while(x) {

       if(x%2==0) contor++;

       x/=10;

   }

   if(contor==k) nk++;

}

void palindrom(int x) {

   int cx,invers=0;

   cx=x;

   while(x){

       invers=invers*10+x%10;

       x=x/10;

   }

   if(invers==cx) pal*=cx;

}

int cmmdc(int a, int b) {

   if(!b) return a;

   return cmmdc(b,a%b);

}

int main()

{

   int n,k,x,x1,x2;

   cin>>n>>k;

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

       cin>>x;

       numereK(x,k);

       palindrom(x);

       if(i==1) x1=x;

       if(i==n) x2=x;

   }

   cout<<"Numere naturale citite cu k cifre pare: "<<nk<<endl;

   cout<<"Produsul numerelor care verifica proprietatea de palindrom: "<<pal<<endl;

   cout<<"Cmmdc a primului si ultimului numar citit: "<<cmmdc(x1,x2);

   return 0;

}