Помощь - Поиск - Пользователи - Календарь
Полная версия: зделал програмку все нармальна идет и результаты выводит те которые нужна
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
maksimla
вот программка
Код
program Bevarde1;
var a,b,i,z:integer;    x,y:array [1..1000] of integer;
begin
  WriteLn('введиде большои делитель');
  Readln(a);
  WriteLn('и наименьшее повторяющееся');
  Readln(b);
  for i:= a*b downto 1 do
  y[i]:=i;
  for z:= a*b downto 1 do
  x[z]:=z;
   begin
   for i:= 1 to a*b do
   for z:= a*b downto 1 do
   if y[i]*x[z]=a*b then
   writeln(y[i],' и ',x[z]);
   end;
readln
end.

вводим 8 и 2
выводит
1 и 16
2 и 8
4 и 4
8 и 2
16 и 1
введешь большее число превышающее массив и все ошибка можна избавится от массива
чтобы какое хочешь число в приделах longint ввел и небыло ошибки или чтобы сам себя массив регулировал ?
volvo
Я вообще не понимаю, зачем тебе тут массив - ты ж его заполняешь линейно...

program Bevarde1;
var a,b,i,z:longint;
begin
WriteLn('введите большой делитель'); Readln(a);
WriteLn('и наименьшее повторяющееся'); Readln(b);

for i:= 1 to a*b do
for z:= a*b downto 1 do
if i * z = a*b then writeln(i, ' и ', z);
readln
end.
Результаты совпадают с твоими...

Только учти, что работать правильно это будет только тогда, когда A*B помещается в диапазон LongInt, а не для любых двух чисел из диапазона LongInt...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.