Sa se scrie o functie recursiva care calculeaza numarul divizorilor primi ai unui numar natural nenul n. In C++.
Răspunsuri la întrebare
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;
}