Сколько простых чисел p, меньших 2000 и дающих остаток 1 при делении на 4, являются суммой двух квадратов - Turbo Pascal
Формулировка задачи:
Сколько простых чисел p, меньших 2000 и дающих остаток 1 при делении на 4, являются суммой двух квадратов p = x2 + y2
Решение задачи: «Сколько простых чисел p, меньших 2000 и дающих остаток 1 при делении на 4, являются суммой двух квадратов»
textual
Листинг программы
var
a,b,i,f,k:integer;
begin
for a:=1 to 45 do
for b:=a+1 to 45 do
if (a*a+b*b<=2000) and((a*a+b*b)mod 4=1)then
begin
f:=0;
for i:=3 to trunc(sqrt(a*a+b*b)) do
if (a*a+b*b) mod i=0 then f:=1;
if f=0 then
begin
inc(k);
write (a*a+b*b,' ');
end;
end;
writeln;
writeln('kol=',k);
end.
Объяснение кода листинга программы
В данном коде используется два вложенных цикла, которые проходят по всем числам от 1 до 45. Внутри циклов проверяется условие: сумма квадратов чисел a и b должна быть меньше или равна 2000, и остаток от деления этой суммы на 4 должен быть равен 1. Если оба условия выполняются, то переменная f принимает значение 1, и счетчик k увеличивается на 1. Если значение f равно 0, то это означает, что найдены два числа, сумма квадратов которых является простым числом, дающим остаток 1 при делении на 4. В этом случае выводится число a, а затем выводится число b. После окончания внутреннего цикла выводится значение переменной k, которое представляет количество найденных простых чисел.