Informatică, întrebare adresată de Dropbox, 9 ani în urmă

Salut, am si eu codul asta :
#include

using namespace std;

ifstream fin("vterminal.in");
ofstream fout("vterminal.out");

int Prim(int n)
{
if(n == 0 || n == 1) return 0;
else
{
int d;
for(d = 2; d <= sqrt(n); d++)
if(n % d == 0) return 0;
return 1;
}
}

int n, x;

int main()
{
fin >> n;

int i, s = 0;

for(i = 1; i <= n; i++)
{
fin >> x;
if(Prim(x) == 1)
{
x = x % 9;
if(x == 0) s += 9;
else s += x;
}
}

s = s % 9;
if(s == 0) fout << 9;
else fout << s;

return 0;
}

Pentru problema : Andrei a făcut într-o zi un șir de N numere. În a doua zi a lăsat în acel șir doar numerele prime. În a treia zi a calculat pentru fiecare număr rămas în șir suma cifrelor, iar apoi a adunat toate aceste sume în S. După ce a obținut numărul S a început să adune toate cifrele din care este format S și tot așa până când ajunge la o cifră terminală C.

Cerința
Ajutați-l pe Andrei să calculeze cifra terminală C.

Date de intrare
Fișierul de intrare vterminal.in conține pe prima linie numărul N, iar pe a doua linie N numere naturale separate prin spații.

Date de ieșire
Fișierul de ieșire vterminal.out va conține pe prima linie numărul C, reprezentând valoarea cerută.

Restricții și precizări
1 ≤ n ≤ 100
numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât 1.000

Exemplu
vterminal.in

5
4 11 24 13 97
vterminal.out

4
Explicație
Doar 11, 13 și 97 sunt prime, deci 11 + 13 + 97 = 121
1 + 2 + 1 = 4, deci 4 este cifra terminală

Problema merge, dar primesc o eroare la compiler-ul de pe pbinfo, mai exact : Exited with error status 127, ce i-as putea face?

Răspunsuri la întrebare

Răspuns de Razzvy
1
Eroarea de compilare o aveai probabil pentru ca nu aveai biblioteca cmath (pentru functia sqrt() ). Dar ai omis cazul in care nu gaseste deloc numere prime, iar in cazul asta programul tau ar fi afisat 9 (if(s==0)fout<<9;). Ai solutia completa in atasament.
Anexe:
Alte întrebări interesante