Advertisement
r_russo

Divisores

Apr 12th, 2022
564
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.81 KB | None | 0 0
  1. {
  2.     Escribir un programa que calcule todos los divisores de un número
  3.         a) Encontrar el número con mayor cantidad de divisores dentro de un rango ingresado
  4.            por el usuario
  5.         b) Determinar el mayor número primo dentro del rango
  6. }
  7.  
  8. program divisores;
  9.  
  10. var
  11.     num: Integer;
  12.     divisor: Integer;
  13.     contador: Integer;
  14.     min, max: Integer;
  15.     max_divisores, num_con_max_divisores: Integer;
  16.     max_primo: Integer;
  17.     hay_num_primo: Boolean;
  18.  
  19. begin
  20.     writeln('Ingrese un rango de valores:');
  21.     write('Mínimo: ');
  22.     readln(min);
  23.     write('Máximo: ');
  24.     readln(max);
  25.     hay_num_primo := FALSE;
  26.    
  27.     if min < max then
  28.     begin
  29.         max_divisores := 0;
  30.         for num := min to max do
  31.         begin
  32.             contador := 1;
  33.             for divisor := 2 to num do
  34.             begin
  35.                 if num mod divisor = 0 then
  36.                 begin
  37.                     contador := contador + 1;
  38.                 end;
  39.             end;
  40.            
  41.             if contador > max_divisores then
  42.             begin
  43.                 max_divisores := contador;
  44.                 num_con_max_divisores := num;
  45.             end;
  46.            
  47.             if contador = 2 then  // el número es primo
  48.             begin
  49.                 hay_num_primo := TRUE;
  50.                 max_primo := num;
  51.             end;
  52.         end;
  53.        
  54.         writeln('El menor número con la mayor cantidad de divisores es ',
  55.                 num_con_max_divisores, ' y tiene ', max_divisores, ' divisores');
  56.         if hay_num_primo then
  57.             writeln('El máximo número primo dentro del rango es ', max_primo)
  58.         else
  59.             writeln('No hay números primos dentro del rango indicado');
  60.     end
  61.     else
  62.         writeln('El rango ingresado no es válido');
  63. end.
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement