1. Se citește un număr natural n, și apoi n numere naturale:
a. Câte din numerele citite au suma cifrelor un nr. divizibil cu 3?
b. Câte din numerele citite sunt nr. prime?
c. Afișați, pentru fiecare număr citit, nr. obținut prin eliminarea cifrelor pare.
d. Petru următorul set de date de intrare, afișați rezultatele ce se obțin la subpunctele anterioare.
n=10
163 493 36 42 87 9 109 71 38 8



Răspuns :

Răspuns:

a.

#include<iostream>

using namespace std;

int suma_cifre(int x)

{

int s=0;

while(x)

{

s=s+x%10;

x=x/10;

}

return s;

}

int main()

{

int n;

cin>>n;

int x;

int nr=0;

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

{

cin>>x;

if(suma_cifre(x)%3==0) nr++;

}

cout<<nr;

return 0;

}

b.

#include<iostream>

using namespace std;

int prim(int x)

{

if(x==0 || x==1 ) return 0;

for(int i=2; i*i<=x;i++)

{

if( x%i==0) return 0;

}

return 1;

int main()

{

int n ;

cin>>n;

int x;

int nr=0;

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

{  cin>>x;

if(prim(x)==1) nr++;

}

cout<<nr;

return 0;

}

c.

#include<iostream>

using namespace std;

int eliminare_nrpare(int x)

{

int p=1;

int raspuns=0;

while(x)

{

if((x%10)%2==1)

{

raspuns=raspuns+p*(x%10);

p=p*10;

}

x=x/10;

}

return raspuns;

}

int main()

{

int n;

cin>>n;

int x;

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

{

cin>>x;

cout<<eliminare_nrpare(x)<<" ";

}

return 0;

}

d.  a: 4

    b 3

    c 13 93 3 0 7 9 19 71 3 0

Explicațied:

a. subalgoritm pt suma de cifre, apoi verific  suma fiecarui numar , in caz ca e divizibila cu 3 , plusez nr de aparitii si la final il scriu

b. la fel, subalgoritm de verificat nr prime

c. ei aici e o mica smecherie, verific daca cifra este impar, in caz ca este impara, o inmultesc cu un scalar p( care la inceput e 1) si il adun la un rezultat care initial e 0, dupa , scalarul p il inmultesc cu 10. Daca se mai gaseste o cifra impara din nou il inmultesc cu p, si il adun in rezultat, iar scalarul in inmultesc din nou cu 10.Astfel, un ex ar fi nr 4325. il gasesc pe 5, rezultat=0+5*1, apoi, il gasesc pe 3, rezultat=5+3*10 adica 35.