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.