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ăspunsuri la întrebare
Răspuns de
1
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;
}
gabrieldobrinmm:
Multumesc frumos! Crezi ca ai putea sa imi si explici putin algoritmul?
Alte întrebări interesante
Matematică,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Religie,
9 ani în urmă