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

Se citesc două numere naturale nenule, n și m, și se cere să se scrie 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.
Exemplu: dacă n=16500 și m=10780, atunci se scrie 2
clasa a 9a

Răspunsuri la întrebare

Răspuns de andrei750238
5

#include <iostream>

#include <cmath>

using namespace std;

int main(){

   int n,m,ndiv=0,p=1,i=2;

   cin >> n >> m;

   //Cautam divizorii primi ai lui n

   while(n!=1){

       //Daca n e divizibil cu i

       if(n%i==0){

           p=1;

           //Afla puterea lui i

           while(n%i==0){

               p*=i;

               n=n/i;

           }

           //Daca m e divizibil cu puterea lui i in mod maximal creste contorul de numere gasite

           if(m%p==0 && m%(p*i)!=0)ndiv++;

       }

       //Incrementeaza la i urmator

       i++;

   }

   cout << ndiv;

}

Alte întrebări interesante