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
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.
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
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;
}
#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
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Istorie,
9 ani în urmă
Matematică,
9 ani în urmă
Istorie,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă