Можно ли натуральное число a представить в виде суммы квадратов двух натуральных чисел - Turbo Pascal
Формулировка задачи:
Определить: можно ли натуральное число a представить в виде суммы квадратов двух натуральных чисел.
Решение задачи: «Можно ли натуральное число a представить в виде суммы квадратов двух натуральных чисел»
textual
Листинг программы
program task( input, output ); var n, a, b, sqrofb: integer; flag: boolean; begin writeln( 'Enter a natural number n:' ); write( 'n = ' ); read( n ); flag := false; a := 1; if n <> 1 then begin while a * a < n do a := a + 1; a := a - 1; while ( a * a >= n div 2 ) and not flag do begin sqrofb := n - a * a; b := 0; repeat b := b + 1; until b * b >= sqrofb; if b * b = sqrofb then flag := true; a := a - 1; end; a := a + 1; end; if flag then writeln( 'n = ', a, ' ^ ( 2 ) + ', b, ' ^ ( 2 )' ) else writeln( 'The number can''t be represented as a sum of squares of natural numbers.' ); end.
Объяснение кода листинга программы
- Программа начинается с объявления переменных: n, a, b, sqrofb типа integer и флаг типа boolean.
- Пользователю предлагается ввести натуральное число n.
- Значение переменной n сохраняется в a.
- Если n не равно 1, то в цикле while aa<n увеличивается значение переменной a до тех пор, пока aa меньше n.
- Затем в цикле while (a*a>=n/2) и не флаг выполняется следующее:
- Вычисляется sqrofb как n-a*a.
- Переменная b инициализируется значением 0.
- В цикле repeat b увеличивается на 1 до тех пор, пока b*b>=sqrofb.
- Если b*b=sqrofb, то флаг устанавливается в true.
- Значение a уменьшается на 1.
- После окончания внутреннего цикла a увеличивается на 1.
- Если флаг равен true, то выводится сообщение n = a^2 + b^2.
- Если флаг не равен true, то выводится сообщение The number can't be represented as a sum of squares of natural numbers.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д