Informatică, întrebare adresată de bubu1374, 9 ani în urmă

Cerinţa
Se dă un şir cu n elemente, numere naturale. Să se verifice dacă în şir există elemente prime.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului.

Date de ieşire
Programul afișează pe ecran mesajul DA, dacă şirul conţine elemente prime, respectiv NU în caz contrar.

Restricţii şi precizări
1 ≤ n ≤ 200
elementele şirului vor fi mai mici decât 1.000.000.000


Am facut problema si cand o incarc pe pbinfo imi da 0 pct , nu inteleg ce nu e bine.
#include<iostream>
#include<math.h>
using namespace std;
int main()
{int n,v[201],i,ok,sem,d;
cin>>n;
ok=0;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
{d=2;
sem=1;
while(d<=sqrt(v[i]) && sem==1)
if(v[i]%d==0)
sem=0;
else
d=d+1;
if(sem==1 && v[i]>1)
ok=1;}
if(ok==0)
cout<<"Nu";
else
cout<<"Da";
return 0;
}

Răspunsuri la întrebare

Răspuns de izdrew
8
int n, a [201],ok,nr,i,d;
int main ()
{
cin>>n;
for(i=1:i <=n;i++)
cin>>a [i];
nr=0;
for (i=1;i <=n;i++)
{
ok=1;
if (a [i]==0||a [i]==1)
ok=0;
for (d=2;d<=a [i]/2;d++)
if (a [i]%d==0)
ok=0;
if (ok)
nr++;
}
if (nr==0)
cout <<"Nu exista";
else cout <<"Exista";
}
Incearca alogoritmul asta. Nu l-am bagat in program, dar daca are vreo eroare s-ar putea sa fie din cauza lui else de la final. In principiu, am verificat pentru fiecare element daca e prim si daca a gasit vreun numar prim, variabila nr (initializata la inceput cu 0)creste. In cazul in care valoarea lui nr nu se modifica (adica ramane 0) inseamna ca nu a gasit niciun numar prim in sir. In caz contrar (daca nr s-a modificat) se afiseaza ca in sir exista numere prime.
Răspuns de express
15
Iti trimit o solutie de 100p verificata. Numerele prime se verifica intr-o functie. Succes!
#include <iostream>
using namespace std;
int x, j, n;
bool ok;
bool nrprim(int nr)
{
    int i;
    bool prim = true;
    for(i = 2; i * i <= nr; i ++)
        if(nr % i == 0)
    {
        prim = false;
        break;
    }
    return prim;
}

int main()
{
    cin >> n;
    for(j = 1; j <= n; j ++)
    {
        cin >> x;
        if(nrprim(x)) ok = true;
    }
    if(ok) cout << "DA";
      else cout << "NU";
    return 0;
}


bubu1374: Multumesc :))
Alte întrebări interesante