Составить множество целых чисел, взятых из некоторого промежутка и представленных в виде суммы квадратов двух целых чисел. - 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.
Объяснение кода листинга программы
- Объявление переменных:
- a, b, i, c, d, n - целочисленные переменные;
- x - массив для хранения найденных чисел;
- f - булевая переменная для контроля наличия решения.
- Чтение промежутка чисел от пользователя.
- Установка начального значения счётчика чисел в массиве и булевой переменной для контроля наличия решения.
- Цикл по всем числам в заданном промежутке.
- Внутри цикла:
- Установка начального значения счётчика чисел на текущем шаге.
- Цикл, пока не будет найдено решение (два разных числа, дающих сумму, равную текущему числу).
- Если решение найдено, то:
- Увеличение счётчика чисел.
- Запись найденного числа в массив.
- Установка флага, что решение найдено.
- Если решение не найдено, то увеличение счётчика чисел на текущем шаге.
- Если цикл по всем шагам не дал решений, то установка флага, что решений нет.
- Вывод сообщения о наличии или отсутствии чисел, представляемых в виде суммы квадратов.
- Если есть решения, то вывод всех найденных чисел.
- Завершение работы программы.