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 1903
Răspunsuri la întrebare
Răspuns de
1
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("vterminal.in");
ofstream g("vterminal.out");
int Prim(int n)
{
if(n==0||n==1)
return 0;
else
{
for(int d=2;d<=sqrt(n);d++)
if(n%d==0)
return 0;
return 1;
}
}
int n, x;
int main()
{
f>>n;
int s=0;
bool prime=false;
for(int i=1;i<=n;i++)
{
f >> x;
if(Prim(x)==1)
{
prime=true;
x%=9;
if(x==0)
s+=9;
else
s+=x;
}
}
s%=9;
if(!prime)
g<<0;
else
if(s==0)
g<<9;
else
g<<s;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Informatică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă