М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
yaritos
yaritos
03.06.2023 02:59 •  Информатика

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

👇
Ответ:
Vlad44kostroma4
Vlad44kostroma4
03.06.2023
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.
4,8(97 оценок)
Открыть все ответы
Ответ:
akonya24
akonya24
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
4,5(39 оценок)
Ответ:
katyasvk
katyasvk
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.
         
4,6(81 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ