Program n1; function isprost(x: integer): boolean; var i: integer; begin if x<2 then isprost:=false else begin isprost:=true; for i := 2 to round(sqrt(x)) do if x mod i = 0 then isprost:=false; end; end; var a,b,i,sum: integer; p: real; begin writeln('введите границы отрезка [a;b] (предполагается, что числа натуральные)'); write('a='); readln(a); write('b='); readln(b); p:=1; sum:=0; if(a<=0) or (b<=0) then write('ошибка, числа не натуральные') else begin writeln('простые числа на отрезке [',a,';',b,']'); for i:=a to b do if isprost(i) then begin p:=p*i; sum:=sum+i; write(i,' '); end; writeln; writeln('их сумма: ',sum); writeln('их произведение: ',p); end; end.
Paradismebel
03.06.2023
А еще можно без головной боли
// PascalABC.NET 3.0, сборка 1111 var a,b:BigInteger; sa,sb:string; begin Write('Первое слагаемое: '); Readln(sa); if BigInteger.TryParse(sa,a)=False then Writeln('Это не целое число!') else begin Write('Второе слагаемое: '); Readln(sb); if BigInteger.TryParse(sb,b)=False then Writeln('Это не целое число!') else Writeln('Точный результат: ',a+b) end end.
Тестовое решение: Первое слагаемое: 5423323409523846095938445870434764308454095 Второе слагаемое: 7425543205430235436743455446541423534233 Точный результат: 5430748952729276331375189325881305731988328
Присакарь520
03.06.2023
Var s,s1:string; a,b:array[1..100]of integer; i,n,x,k:integer; begin readln(s); readln(s1); n:=1; if length(s)>length(s1) then x:=length(s) else x:=length(s1); for i:=1 to length(s) do begin val(copy(s,i,1),k,n); a[i+x-length(s)]:=k; end; for i:=1 to length(s1) do begin val(copy(s1,i,1),k,n); b[i+x-length(s1)]:=k; end; for i:=1 to length(s) do a[i]:=a[i]+b[i]; for i:=length(s) downto 2 do begin a[i-1]:=a[i-1]+a[i]div 10; a[i]:=a[i]mod 10; end; for i:=1 to length(s) do write(a[i]);
end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Найдите все простые числа на отрезке [a, b] их сумму и произведение (составить программу в pascal)
function isprost(x: integer): boolean;
var i: integer;
begin
if x<2 then isprost:=false else
begin
isprost:=true;
for i := 2 to round(sqrt(x)) do if x mod i = 0 then isprost:=false;
end;
end;
var a,b,i,sum: integer;
p: real;
begin
writeln('введите границы отрезка [a;b] (предполагается, что числа натуральные)');
write('a=');
readln(a);
write('b=');
readln(b);
p:=1;
sum:=0;
if(a<=0) or (b<=0) then write('ошибка, числа не натуральные')
else begin
writeln('простые числа на отрезке [',a,';',b,']');
for i:=a to b do if isprost(i) then
begin
p:=p*i;
sum:=sum+i;
write(i,' ');
end;
writeln;
writeln('их сумма: ',sum);
writeln('их произведение: ',p);
end;
end.