Queremos calcular la suma siguiente: 1 + 2 + ... + 200.
Escribir un algoritmo que calcule esta suma. La única operación que podemos usar en este algoritmo es la suma de dos enteros, Este algoritmo puede usar variables y estructuras de repeticion (de tipo while o for).
Escribir este algoritmo usando el lenguaje informal llamado pseudocódigo. Leer la intro y el ejemplo "Pseudocódigo estilo C" de la página Wikipedia acerca del pseudocódigo.
El algoritmo tiene que ser escrito de manera que se pueda modificar fácilemente para calcular otras sumas de secuencias: 1 + ... + 200 + 201, o 5 + 6 + ... + 150, etc.
En el algoritmo anterior, tenemos dos tipos de variables:
Misma pregunta para calcular: 1 * 2 * ... * 10.
Sean a
y b
dos enteros positivos tales que a >= b
.
El máximo común divisor de a
y b
es el mayor entero que divide a
y b
sin dejar resto.
Lo escribimos MCD(a,b).
Dado un solo entero positivo a:
- ¿Qué tan grande puede ser un divisor de a?
- ¿Qué tan chiquito puede ser un divisor de a?
- ¿En qué rango de valores posibles se encuentran los divisores de a?
Proponer un algoritmo para el problema siguiente:
Dados dos enteros positivos a y b, con a ≥ b:
- ¿Qué tan grandes pueden ser los divisores comunes de a y b?
- ¿Qué tan chiquitos pueden ser?
- ¿En qué rango de valores posibles se encuentran?
Proponer un algoritmo para el problema siguiente:
Dados dos enteros positivos a y b, con a ≥ b:
- ¿Qué tan grande puede ser MCD(a,b)?
- ¿Qué tan chiquito puede ser?
- ¿En qué rango de valores posibles se encuentra MCD(a,b)?
Escribir un algoritmo para calcular MCD(a,b) dados a ≥ b ≥ 1.
La consigna es:
Pueden comprobar su algoritmo implementándolo en un programa que declare dos variables a
y b
, con valores iniciales tales que a ≥ b ≥ 1, que calcule su MCD y que lo muestre en la salida.
Escribir un algoritmo que calcule MCD(a,b) dados a ≥ b ≥ 1, siguiendo el método descrito arriba.
Facultativo:
Escribir un segundo algoritmo que haga el recorrido de valores posibles en el otro sentido (de manera decreciente). ¿Qué ventaja tiene este algoritmo con respecto al primero?