ntyremsk1
?>

Найдите все простые числа на отрезке [a, b] их сумму и произведение (составить программу в pascal)

Информатика

Ответы

ragimovelshad
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
А еще можно без головной боли

// 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
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)
Ваше имя (никнейм)*
Email*
Комментарий*