Помогите, в одном тесте пишет: "Превышено максимальное время". Задача: Вывести все простые числа от M до N включительно. Входные данные В первой строке находятся разделённые пробелом M и N. 2 меньше = M меньше = N меньше = ...
Помогите, в одном тесте пишет: "Превышено максимальное время".
Задача:
Вывести все простые числа от M до N включительно.
Входные данные
В первой строке находятся разделённые пробелом M и N. 2 <= M <= N <= 1 000 000.
Выходные данные
Вывести числа в порядке возрастания, по одному в строке. Если между M и N включительно нет простых - вывести "Absent".
Сам код:
var i,a,b,c,n,d: longint;
begin
Read(a, n);
For i:=a to n do
begin
For b:=2 to trunc(sqrt(i)) do
If i mod b=0 then c:=c+1;
If c=0 then
begin
writeln(i);
d:=d+1;
end
else
c:=0;
end;
if d=0 then writeln('Absent');
end.
Ответ(ы) на вопрос:
Гость
//Прости, но я не понимаю что должен делать код выше, напишу свой.
//Pascal ABC. NET v3.0
var m,n:real;
i:integer;
begin
Read(m,n);
if abs(m-n)<1 then
begin;
write('Absent');
exit;
end;
for i:=trunc(m)+1 to trunc(n) do
writeln(i);
end.
Не нашли ответ?
Похожие вопросы