fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. // Función para factorizar un número en primos
  6. vector<int> factorizar(int n) {
  7. vector<int> primos;
  8. int i = 2;
  9. while (i * i <= n) {
  10. if (n % i == 0) {
  11. primos.push_back(i);
  12. n /= i;
  13. } else {
  14. i++;
  15. }
  16. }
  17. if (n > 1) {
  18. primos.push_back(n);
  19. }
  20. return primos;
  21. }
  22.  
  23. // Función para calcular el número de divisores de un número
  24. int contarDivisores(int n) {
  25. vector<int> primos = factorizar(n);
  26. int exponentes[primos.size()];
  27. for (int i = 0; i < primos.size(); i++) {
  28. exponentes[i] = 0;
  29. }
  30. for (int i = 0; i < primos.size(); i++) {
  31. int p = primos[i];
  32. while (n % p == 0) {
  33. exponentes[i]++;
  34. n /= p;
  35. }
  36. }
  37. int divisores = 1;
  38. for (int i = 0; i < primos.size(); i++) {
  39. divisores *= (exponentes[i] + 1);
  40. }
  41. return divisores;
  42. }
  43.  
  44. int main() {
  45. int n;
  46. cout << "";
  47. cin >> n;
  48. int divisores = contarDivisores(n);
  49. cout << " " << n << " es: " << divisores << endl;
  50. return 0;
  51. }
Success #stdin #stdout 0.01s 5272KB
stdin
8
stdout
 8 es: 4