Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Sa se scrie o functie recursiva care calculeaza numarul divizorilor primi ai unui numar natural nenul n. In C++.

Răspunsuri la întrebare

Răspuns de NickoTyn
0

Asta e varianta lunga, dar e mai usoara de inteles.

#include <iostream>

using namespace std;

int main()

{

   int n,ct=0;

   cin>>n;

   if (n%2 == 0){

       ct++;

       while(n%2==0)

           n = n / 2;

   }

   if (n%3 == 0){

       ct++;

       while(n%3==0)

           n = n / 3;

   }

   if (n%5 == 0){

       ct++;

       while(n%5==0)

           n = n / 5;

   }

   if (n%7 == 0){

       ct++;

       while(n%7==0)

           n = n / 7;

   }

      if (n%11 == 0){

       ct++;

       while(n%11==0)

           n = n / 11;

   }

   if (n%13 == 0){

       ct++;

       while(n%13==0)

           n = n / 13;

   }

   if (n%17 == 0){

       ct++;

       while(n%17==0)

           n = n / 17;

   }

   if (n%19 == 0){

       ct++;

       while(n%19==0)

           n = n / 19;

   }

   if (n%23 == 0){

       ct++;

       while(n%23==0)

           n = n / 23;

   }

   if (n%29 == 0){

       ct++;

       while(n%29==0)

           n = n / 29;

   }

   if (n%31 == 0){

       ct++;

       while(n%31==0)

           n = n / 31;

   }

   if (n%37 == 0){

       ct++;

       while(n%37==0)

           n = n / 37;

   }

   cout << ct << endl;

   return 0;

}

Alte întrebări interesante