Составить множество целых чисел, взятых из некоторого промежутка и представленных в виде суммы квадратов двух целых чисел. - Pascal

Узнай цену своей работы

Формулировка задачи:

Составить множество целых чисел, взятых из некоторого промежутка и представленных в виде суммы квадратов двух целых чисел.

Решение задачи: «Составить множество целых чисел, взятых из некоторого промежутка и представленных в виде суммы квадратов двух целых чисел.»

textual
Листинг программы
uses crt;
var a,b,i,c,d,n:integer;
    x:array[1..100] of integer;
    f:boolean;
begin
clrscr;
repeat
writeln('Введите диапазон натуральных чисел');
readln(a,b);
until (a>0)and(b>a);
n:=0;
for i:=a to b do
 begin
  f:=false;
  c:=1;
  while(c<=trunc(sqrt(i))-1)and not f do
   begin
    d:=c+1;{если числа разные, если можно типа 4+4, то d:=c}
    while(d<=trunc(sqrt(i)))and not f do
    if c*c+d*d=i then
     begin
      n:=n+1;
      x[n]:=i;
      f:=true
     end
    else d:=d+1;
    if not f then c:=c+1
  end;
 end;
if n=0 then write('Нет чисел, представляемых в виде суммы квадратов')
else
 begin
  writeln('Искомое множество');
  for i:=1 to n do
  write(x[i],' ');
 end;
readln
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • a, b, i, c, d, n - целочисленные переменные;
    • x - массив для хранения найденных чисел;
    • f - булевая переменная для контроля наличия решения.
  2. Чтение промежутка чисел от пользователя.
  3. Установка начального значения счётчика чисел в массиве и булевой переменной для контроля наличия решения.
  4. Цикл по всем числам в заданном промежутке.
  5. Внутри цикла:
    • Установка начального значения счётчика чисел на текущем шаге.
    • Цикл, пока не будет найдено решение (два разных числа, дающих сумму, равную текущему числу).
    • Если решение найдено, то:
      • Увеличение счётчика чисел.
      • Запись найденного числа в массив.
      • Установка флага, что решение найдено.
    • Если решение не найдено, то увеличение счётчика чисел на текущем шаге.
    • Если цикл по всем шагам не дал решений, то установка флага, что решений нет.
  6. Вывод сообщения о наличии или отсутствии чисел, представляемых в виде суммы квадратов.
  7. Если есть решения, то вывод всех найденных чисел.
  8. Завершение работы программы.

Оцени полезность:

14   голосов , оценка 4.5 из 5
Похожие ответы