354
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ă
#include <bits/stdc++.h>
using namespace std;
ifstream fin("vterminal.in");
ofstream fout("vterminal.out");
int prim(int n)
{
if(n==0 || n==1) return 0;
if(n==2) return 1;
if(n%2==0) return 0;
else
for(int d=3;d*d<=n;d+=2)
{
if(n%d==0) return 0;
}
return 1;
}
int main()
{
int n,x,s=0;
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>x;
if(prim(x)) s=s+x;
}
fout<<s%9;
return 0;
}
Comentarii