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

Subprogramul factori are doi parametri, n și m, prin care primește câte un număr natural din intervalul
[1,109]. Subprogramul returnează numărul valorilor prime care apar la aceeași putere atât în
descompunerea în factori primi a lui n, cât și în descompunerea în factori primi a lui m.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=16500 și m=10780, atunci subprogramul returnează 2 (16500=2235311,
10780=2257211).


lory2408: d=2;
lory2408: d=2;
while(n>1 && m>1)
{
p1=0;
while(n%d==0)
{
p1++:
n=n/d;
}
p2=0;
while(m%d==0)
{
p2++;
m=m/d;
}
if(p1==p2)
d++;
nr++;
}
lucaciucandrei: nu-ti mere pt toate cazurile

Răspunsuri la întrebare

Răspuns de lucaciucandrei
15

COROANA TE ROG!!!

int factori(int n, int m){

      int div, p1=0, p2=0, x=2, k=0;

      if(n==1||m==1)

          return 0;

      while(n>1&&m>1){

          div=0;

          for(int i=1;i<=x;i++)

              if(x%i==0)

                  div++;

          if(div==2){

              while(n%x==0)

                  n/=x,p1++;

              while(m%x==0)

                  m/=x,p2++;

              if(p1==p2&&p1!=0&&p2!=0)

                  k++;

          }

          p1=0,p2=0,x++;

      }

      return k;

  }

Alte întrebări interesante