Va roggg
Se citeste un sir de numere pana la intalnirea valorii 0.
a) Sa se numere cate dintre ele au suma divizorilor un numar par
b) Sa se afiseze toate numerele care au exact 3 cifre de “1”
c) Sa se verifice daca numerele sunt scrise in ordine crescatoare
d) Se citeste o cifra k. Sa se afiseze numerele care au prima cifra divizibila cu k
exemplu: k=3
357, 631, 243, 91, 8, 6, 5, 0

se va afisa 357, 631, 91, 6

e) Sa se determine numarul maxim din sir si de cate ori apare
exemplu: 35, 7, 35, 1, 18, 27, 31, 35, 0
se va afisa 35, 3

Răspuns :

a)

#include<iostream>

using namespace std;

int main(){

   int x, sdp=0;

   cin>>x;

   while(x!=0){

       int s=0;

       for(int i=1;i<=x;i++) if(x%i==0) s+=i;

       if(s%2==0) sdp++;

       cin>>x;

   }

   cout<<sdp;

   return 0;

}

b)

#include<iostream>

using namespace std;

int main(){

   int x, nr1=0, v[101], i=1;

   cin>>x;

   while(x!=0){

       int k=0, cx=x;

       while(cx!=0) if(cx%10==1) k++;

       if(k==3) v[i++]=x;

       cin>>x;

   }

   for(int j=1;j<=i-1;j++) cout<<v[j]<<' ';

   return 0;

}

c)

#include<iostream>

using namespace std;

int main(){

   int x, y;

   cin>>x;

   if(x==0) {cout<<"nu avem nr"; return 0;}

   while(x!=0){

       cin>>y;

       if(x>y&&y!=0) {cout<<"nu"; return 0;}

       x=y;

   }

   cout<<"da";

   return 0;

}

d)

#include<iostream>

using namespace std;

int main(){

   int x, k, nr=0, v[1001], i=1;

   cin>>k>>x;

   while(x!=0) {

       if(((x%10)%k)==0) v[i++]=x;

       cin>>x;

   }

   for(int j=1;j<=i-1;j++) cout<<v[j]<<' ';

   return 0;

}

e)

#include<iostream>

using namespace std;

int main(){

   int x, y, max, v[1001], i=1, k=0;

   cin>>x;

   if(x==0) {cout<<"nu avem nr"; return 0;}

   max=x;

   v[i++]=x;

   while(x!=0){

       cin>>y;

       if(max>y&&y!=0) max=y;

       v[i++]=y;

       x=y;

   }

   for(int j=1;j<=i-1;j++) if(max==v[j]) k++;

   cout<<max<<", "<<k;

   return 0;

}