Se dă un şir format din n elemente, numere naturale. Calculaţi suma elementelor din secvenţa determinată de primul şi ultimul element prim.
Fişierul de intrare sumsec.in conţine pe prima linie numărul n; urmează cele n elemente ale vectorului, dispuse pe mai multe linii şi separate prin spaţii.
Fişierul de ieşire sumsec.out va conţine pe prima linie numărul S, reprezentând suma calculată.
Restricţii şi precizări
1 ≤ n ≤ 1000
elementele şirului vor avea cel mult 9 cifre
şirul va conţine cel puţin un element prim
Exemplu
sumsec.in
8
12 10 15 7 17 10 19 14
sumsec.out
53
Explicație
7+17+10+19=53
Răspunsuri la întrebare
Răspuns de
4
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main()
{
ifstream in("sumsec.in");
ofstream out("sumsec.out");
int n = 0, v[1000], prim1 = 0, prim2 = 0;
long long s = 0;
in >> n;
for (int i=0; i<n; i++)
{
in >> v[i];
int OK = 1;
for (int j=2; j<=sqrt(v[i]) && OK; j++)
if (v[i]%j==0)
OK = 0;
if (OK && v[i] != 0 && v[i] != 1)
{
if (!prim1)
{
prim1 = i;
prim2 = i;
}
else
prim2 = i;
}
}
for (int i=prim1; i<=prim2; i++)
s += v[i];
out << s;
return 0;
}
#include <fstream>
#include <cmath>
using namespace std;
int main()
{
ifstream in("sumsec.in");
ofstream out("sumsec.out");
int n = 0, v[1000], prim1 = 0, prim2 = 0;
long long s = 0;
in >> n;
for (int i=0; i<n; i++)
{
in >> v[i];
int OK = 1;
for (int j=2; j<=sqrt(v[i]) && OK; j++)
if (v[i]%j==0)
OK = 0;
if (OK && v[i] != 0 && v[i] != 1)
{
if (!prim1)
{
prim1 = i;
prim2 = i;
}
else
prim2 = i;
}
}
for (int i=prim1; i<=prim2; i++)
s += v[i];
out << s;
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Geografie,
9 ani în urmă
Chimie,
9 ani în urmă