Scrieți un program care citește de la tastatură un număr natural n, apoi n numere naturale de cel mult nouă cifre, și afișează pe ecran câte dintre aceste numere au proprietatea că suma cifrelor lor este un număr prim.
Am nevoie de program in C++. Mulțumesc!

Răspuns :

Salut!

Ai rezolvarea mai jos

#include <iostream>

using namespace std;

bool prim(int n)

{

 if (n <= 1)

 {

   return false;

 }

 else if (n != 2 && n % 2 == 0)

 {

   return false;

 }

 for (int i = 3; i * i <= n; i += 2)

 {

   if (n % i == 0)

   {

     return false;

   }

 }

 return true;

}

int sumcif(int n)

{

 int s = 0;

 while (n)

 {

   int c = n % 10;

   s += c;

   n /= 10;

 }

 return s;

}

int main()

{

 int n, x, cnt = 0;

 cin >> n;

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

 {

   cin >> x;

   if (prim(sumcif(x)))

   {

     cnt++;

   }

 }

 cout << cnt;

 return 0;

}