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

Buna! Am nevoie de ajutor la Problema #1174 FListaNumarare2 de pe pbinfo.

Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:

struct nod{
int info;
nod * urm;
};

în care câmpul info memorează un număr natural, iar câmpul urm memorează adresa următorului element al listei.

Cerinţa
Să se scrie o funcție C++ cu următorul prototip:

int numarare(nod * p);

care determina și returnează numărul de perechi de elemente prime între ele din lista pentru care primul element are adresa memorată în pointerul p.


Exemplu
Dacă lista conține valorile (4 7 8 2 9 2 8) funcția va returna valoarea 11. Perechile sunt: (4 7) (4 9) (7 8) (7 2) (7 9) (7 2) (7 8) (8 9) (2 9) (9 2) (9 8).

Important
Soluţia propusă va conţine definiţia funcţiei cerute. 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.

Răspunsuri la întrebare

Răspuns de robertkiller90oz7k0v
7

int numarare(nod *p)

{

  int k=0;

 

  while(p->urm)

    {

       int x=p->info;

       nod *q=p->urm;

       while(q)

        {

        int aux=x;

        int y=q->info;

         

           while(aux!=y)

             if(aux>y)  

              aux=aux-y;

             else

              y=y-aux;

             

             if(aux==1)

              k++;  

             

         q=q->urm;

       }

     

        p=p->urm;

    }

   

        return k;

}

Alte întrebări interesante
Matematică, 8 ani în urmă