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

Se citeste un vector cu n nr. naturale de max. 2 cifre, sa se afiseze primul nr prim care nu apare printre nr. citite. cu vector de frecventa si sa se foloseasca subprogram.


boiustef: faci cu vector de frecventa...
Rayzen: Nu stiu ce e ala.
Rayzen: E vector unidimensional>
Rayzen: ? sau
Rayzen: Nu am folosit denumirea asta.
boiustef: da, dar incrementezi valoarea daca numarul egal cu pozitia e citit
boiustef: e des folosit vectorul de frecventa... astepti sa pun eu raspuns...
Rayzen: Da, pune-l tu.
Rayzen: Si scuze.
boiustef: pentru ce... sunt bucuros sa-ti fiu de folos cu ceva.. :)))

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

using namespace std;

bool prim(int m)

{

   int d, p=1;

   for (d=2; d*d<=m; d++)

       if (m%d==0)

   {

       p=0; break;

   }

   return p;

}

int main()

{

   int n, num, gasit=0, v[100]={0};

   cin >> n;

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

   {

       cin >> num;

       ++v[num];

   }

   if (v[2]==0) { gasit=1; cout << 2;  }

   else

   {

       for (int i=3; i<100; i+=2)

       {

           if (prim(i) && v[i]==0)

           {

               gasit=1;

               cout << i;

               break;

           }

       }

       if (gasit==0)

           cout << "nu exista...";

   }

}

Explicație:

Se declara vectorul de frecventa v[100], in care se inregistreaza frecventa de aparitie a numerelor citite, care se cunoaste ca sunt <100

De exemplu daca se introduc numerele 1 2 3 6 6 3 8 3 2, atunci v[1] devine =1, v[2]=2 (adica s-au citit doi de 2), v[3]=3, v[6]=2, v[8]=1, celelate elemente ale vectorului raman zerouri.

La Functia prim am cautat prime intre numerele impare, deoarece am cercetat pe 2 aparte.

Alte întrebări interesante