Informatică, întrebare adresată de stefi1484, 8 ani în urmă

Se citesc n numere naturale in sirul V[]. Sa se verifice daca toate elementele sunt prime. Se afiseaza TOATE sau NU TOATE

Răspunsuri la întrebare

Răspuns de thePoint01
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,v[100],nr=0;

   cout<<"n: ";

   cin>>n;

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

       cin>>v[i];

   }

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

       int p=0;

       for(int j=2;j<=v[i]/2;++j){

           if(v[i]%j==0){

               p++;

           }

       }

       if(p==0){

           nr++;

       }

   }

   if(nr==n)

       cout<<"TOATE";

   else

       cout<<"NU TOATE";

   return 0;

}

Explicație:

1. am citit n si v[n] elemente

2. am luat fiecare element in parte si am verificat daca e prim sau nu

3. daca e prim nr creste cu 1

4. daca toate elementele sunt prime (nr==n) scrie "TOATE", daca nu "NU TOATE"


stefi1484: De ce mai creste nr dacă p==0?
thePoint01: deci trbuie sa aflii daca toate numerele sunt prime
thePoint01: p este initializat cu 0 la inceputul lui for()
thePoint01: apoi mai ai un al doilea for() care te ajuta sa vezi daca respectivul numar mai are alti divizori in afara de 1 si el insuși
thePoint01: aici intervine p
thePoint01: daca respectivul numar mai are alti divizori, atunci p creste(p++)
thePoint01: dupa ce se termina al doilea for(), daca nu s-au gasit alti divizori(p==0) atunci nr creste(nr++)
thePoint01: si la final daca nr (numarul de "numere" prime) == n atunci se afiseaza ...
thePoint01: sper ca ai inteles
Alte întrebări interesante