Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Escribir un programa que calcule todos los divisores de un número
- a) Encontrar el número con mayor cantidad de divisores dentro de un rango ingresado
- por el usuario
- b) Determinar el mayor número primo dentro del rango
- }
- program divisores;
- var
- num: Integer;
- divisor: Integer;
- contador: Integer;
- min, max: Integer;
- max_divisores, num_con_max_divisores: Integer;
- max_primo: Integer;
- hay_num_primo: Boolean;
- begin
- writeln('Ingrese un rango de valores:');
- write('Mínimo: ');
- readln(min);
- write('Máximo: ');
- readln(max);
- hay_num_primo := FALSE;
- if min < max then
- begin
- max_divisores := 0;
- for num := min to max do
- begin
- contador := 1;
- for divisor := 2 to num do
- begin
- if num mod divisor = 0 then
- begin
- contador := contador + 1;
- end;
- end;
- if contador > max_divisores then
- begin
- max_divisores := contador;
- num_con_max_divisores := num;
- end;
- if contador = 2 then // el número es primo
- begin
- hay_num_primo := TRUE;
- max_primo := num;
- end;
- end;
- writeln('El menor número con la mayor cantidad de divisores es ',
- num_con_max_divisores, ' y tiene ', max_divisores, ' divisores');
- if hay_num_primo then
- writeln('El máximo número primo dentro del rango es ', max_primo)
- else
- writeln('No hay números primos dentro del rango indicado');
- end
- else
- writeln('El rango ingresado no es válido');
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement