Resolviendo el reto /Solving Challenge

in Hive Learners9 months ago (edited)

Esta es una serie de Post que se enfocarán en el paso a paso para resolver los problemas diarios que plantea el usuario @ydavgonzalez y a la vez enseñar el enfoque de programación .

Puedes encontrar el reto aqui y dejar tu solución
https://ecency.com/hive-163521/@ydavgonzalez/problema-matematico-del-dia30-08-2024

¡Aprende a contar divisores con JavaScript! 🧮

En este post, vamos a explorar la fascinante relación entre la programación y las matemáticas para resolver un problema que involucra divisores de un número. 🚀

El problema: ¿Cuántos divisores positivos del número 10240 tienen una suma de dígitos igual a 12?

¡Vamos a descomponer el problema paso a paso!

  1. Descomposición en Factores Primos:
  • Comencemos factorizando el número 10240 en sus factores primos:
    • 10240 = 2^10 * 5^1
  1. Contando Dividores:
  • Para calcular la cantidad de divisores positivos, seguimos esta regla:

    • Si un número se expresa como p₁^a₁ * p₂^a₂ * ... * pₙ^aₙ (donde pᵢ son números primos y aᵢ son sus exponentes),
    • El número total de divisores es (a₁+1) * (a₂ + 1) * ... * (aₙ + 1).
  • En nuestro caso: (10 + 1) * (1 + 1) = 22 divisores.

  1. ¡JavaScript al Rescate!
  • Para encontrar los divisores que cumplen con la condición de suma de dígitos igual a 12, usaremos un código en JavaScript:function sumaDigitos(numero) {
    let suma = 0;
    let numeroString = numero.toString();
    for (let i = 0; i < numeroString.length; i++) {
    suma += parseInt(numeroString[i]);
    }
    return suma;
    }

function contarDivisores(numero, sumaDeseada) {
let contador = 0;
for (let i = 1; i <= numero; i++) {
if (numero % i === 0 && sumaDigitos(i) === sumaDeseada) {
contador++;
}
}
return contador;
}

let numero = 10240;
let sumaDeseada = 12;
let resultado = contarDivisores(numero, sumaDeseada);
console.log(El número ${numero} tiene ${resultado} divisores cuya suma de dígitos es ${sumaDeseada}.);
Explicación del código:

  • La función sumaDigitos calcula la suma de los dígitos de un número.
  • La función contarDivisores itera sobre todos los números desde 1 hasta el número dado.
  • Se verifica si el número es divisor del número original y si la suma de sus dígitos es igual a la suma deseada.
  • Si ambas condiciones se cumplen, se incrementa el contador.

¡Y la respuesta es...

Al ejecutar el código, obtenemos la respuesta: "El número 10240 tiene 4 divisores cuya suma de dígitos es 12."

¡Hemos aprendido a:

  • Factorizar números en primos.
  • Calcular la cantidad de divisores.
  • Escribir código en JavaScript para automatizar el proceso.

¡Sigue explorando el mundo de la programación y las matemáticas!

#Programación #JavaScript #Matemáticas #Divisores #SoluciónDeProblemas

Find challenge here

https://ecency.com/hive-163521/@ydavgonzalez/problema-matematico-del-dia30-08-2024

Learn to Count Divisors with JavaScript! 🧮

In this post, we're going to explore the fascinating relationship between programming and mathematics to solve a problem involving divisors of a number. 🚀

The problem: How many positive divisors of the number 10240 have a sum of digits equal to 12?

Let's break down the problem step by step!

  1. Prime Factorization:
  • Let's start by factoring the number 10240 into its prime factors:
    • 10240 = 2^10 * 5^1
  1. Counting Divisors:
  • To calculate the number of positive divisors, we follow this rule:

    • If a number is expressed as p₁^a₁ * p₂^a₂ * ... * pₙ^aₙ (where pᵢ are prime numbers and aᵢ are their exponents),
    • The total number of divisors is (a₁+1) * (a₂ + 1) * ... * (aₙ + 1).
  • In our case: (10 + 1) * (1 + 1) = 22 divisors.

  1. JavaScript to the Rescue!
  • To find the divisors that meet the condition of the sum of digits being equal to 12, we will use a code in JavaScript:function sumDigits(number) {
    let sum = 0;
    let numberString = number.toString();
    for (let i = 0; i < numberString.length; i++) {
    sum += parseInt(numberString[i]);
    }
    return sum;
    }

function countDivisors(number, desiredSum) {
let counter = 0;
for (let i = 1; i <= number; i++) {
if (number % i === 0 && sumDigits(i) === desiredSum) {
counter++;
}
}
return counter;
}

let number = 10240;
let desiredSum = 12;
let result = countDivisors(number, desiredSum);
console.log(The number ${number} has ${result} divisors whose sum of digits is ${desiredSum}.);
Code Explanation:

  • The sumDigits function calculates the sum of the digits of a number.
  • The countDivisors function iterates over all numbers from 1 to the given number.
  • It checks if the number is a divisor of the original number and if the sum of its digits is equal to the desired sum.
  • If both conditions are met, the counter is incremented.

And the answer is...

When executing the code, we get the answer: "The number 10240 has 4 divisors whose sum of digits is 12."

We have learned to:

  • Factorize numbers into primes.
  • Calculate the number of divisors.
  • Write JavaScript code to automate the process.

Keep exploring the world of programming and mathematics!

#Programming #JavaScript #Mathematics #Divisors #ProblemSolving