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; }