Ejercicio 10b, práctico 7

Ejercicio 10b, práctico 7

de Mateo Fontoura Abelenda -
Número de respuestas: 2

Buenas, estaría precisando una idea para el ejercicio 10b, no logro comprender como puedo utilizar el procedimiento creado en el apartado 10a.
Procedure multiplicidadFactor(numero, factor : integer; var multiplicidad, residuo : integer);
Begin
  multiplicidad:=0;
  While (numero Mod factor = 0) Do
  Begin
    numero:=numero Div factor;
    multiplicidad:=multiplicidad+1;
  End;
  residuo:=numero;
End;

Tenía como idea evaluar si el número ingresado es primo, en caso de serlo, no se puede descomponer, por lo cual el resultado es el mismo número, pero en caso de no serlo y ser el número 15 por ej, ingresando factor:=2, daría resto 15 y debería pasar a factor:=factor +1; pero no me hago la idea de como hacer eso. 

En respuesta a Mateo Fontoura Abelenda

Re: Ejercicio 10b, práctico 7

de Mateo Fontoura Abelenda -
39 17 1517 42 12 18 -1
39 = 3 * 13
17 = 17
1517 = 37 * 41
42 = 2 * 21
12 = 2 * 3 (*escribe un unico factor en caso de multiplicarse varias veces el mismo*)
18 = 2 * 9
Logre esa salida por cmd, pero estoy teniendo problemas en como hacer para evaluar el hecho de que si el residuo no es primo hay posibilidad de descomponerlo y realizar esa descomposición, además si la descomposición del número es 2*2*3, escribe 2 * 3.
En respuesta a Mateo Fontoura Abelenda

Re: Ejercicio 10b, práctico 7

de Felipe Miranda Torres De La Llosa -
Hola Mateo, ¿cómo andas?

La idea para ir descomponiendo cada número en sus divisores primos, es dividirlo por factores desde 2 hasta que el residuo sea 1, en cuyo caso terminas porque el número se construiría como el producto de todos los elementos de la descomposición por 1. Ahora, cuando un factor divide al número, está en la descomposición tantas veces como la multiplicidad, por lo que en la descomposición ese factor aparece ese número de veces, y luego seguir descomponiendo el residuo hasta llegar a 1.
Fíjate que no tenés que preocuparte por controlar que los factores que dividen sean primos, por ejemplo si el número es divisible entre 4, cuando pases por el factor 2 y descompongas multiplicando 2 * 2 * resto, este resto ya no va a ser divisible por 4, y así sucesivamente hasta que el resto sea un número primo que solo es divisible cuando el factor es sí mismo.

Saludos,
Felipe