👤

Problema #1827 VectorSumPrim pbinfo

Cerinţa

Scrieți definiția completă a subprogramului P care primeşte prin intermediul parametrului n un număr natural nenul (n≤100), iar prin intermediul parametrului x un tablou unidimensional cu n componente întregi, de maximum șase cifre fiecare.

Subprogramul furnizează prin intermediul parametrului s suma elementelor din tabloul x care au valori numere prime.

Restricţii şi precizări

-0 < n ≤ 100
-numele subprogramului cerut este P
-parametrii sunt, în această ordine: x, n, s
-elementele vectorului x sunt indexate de la zero

Exemplu

Dacă n=6 și x=(12, 7, 6, 3, 8, 5), după apel s=15.

Important

Soluţia propusă va conţine definiţia subprogramului cerut și eventual al altor subprograme, apelate de acesta. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

Aceasta e solutia mea care imi da 0 puncte:

#include
using namespace std;
int prim(int x)
{
int d;
if(x<2)
return 0;
else
for(d=2; d*d<=x; d++)
if(x%d==0)
return 0;
else
return 1;
}
void P(int x[],int n,int &s)
{
if(n>0)
{
if(prim(x[n-1])==1)
s=s+x[n-1];
P(x,n-1,s);
}
}
int s=0,x[100],n,i;
int main()
{
cin>>n;
for(i=0; i cin>>x[i];
P(x,n,s);
cout< return 0;
}




Răspuns :

Răspuns:

bool prim (int c)

{

   if (c==0 || c==1) return 0;

   if (c==2 || c==3) return 1;

   if (c>3) {

       if (c%2==0) return 0;

       else {

           int d=1;

            for (int j=3; (j*j<=c && d==1); j+=2)

               if (c%j==0) ++d;

            if (d==1) return 1;

            else return 0;

       }

   }

}

void P(int x[], int n, int& s)

{

  s=0; int copie;

  for (int i=0; i<n; ++i) {

       if (x[i]<0) copie = - x[i];

       else copie = x[i];

      if (prim(copie))  s+=x[i];

  }

}

Explicație:

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!


En Studentsy: Alte intrebari