Паскаль M меньше n, n и m натуральные числа. Вывести ** экран числа от m до n которые не...

0 голосов
34 просмотров

Паскаль M меньше n, n и m натуральные числа. Вывести на экран числа от m до n которые не являются простыми


Информатика (42 баллов) | 34 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018

Внимание! Если программа не работает, обновите версию!

function IsPrime(Self: integer): boolean; extensionmethod;

// является ли число простым ?

begin

 if Self < 4 then Result := True

 else

 begin

   var found := (Self mod 2 = 0);

   var p := 3;

   while (not found) and (sqr(p) <= Self) do</p>

   begin

     found := (Self mod p = 0);

     p += 2

   end;

   Result := not found

 end

end;


begin

 var (m, n) := ReadInteger2('Введите m и n:');

 Range(m, n).Where(t -> not t.IsPrime).Println

end.


image
(654k баллов)
0

1 не является простым, а у вас "if Self<4"

0

Это почему 1 не является простым?

0

"Простое число — натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя — единицу и самого себя".

0

В силу этого определения, потому что делителей должно быть ровно два и различных?

0

Но вообще-то на простоту проверяют натуральные числа, начинающиеся от 2.

0

Да, в силу того, что эти делители должны быть различны)

0

В смысле "на простоту проверяют натуральные числа, начинающиеся от 2"?

0

Ну да. Но можно поправить, конечно, добавить проверку на значение 1.

0

В смысле того, что единицу на простоту не проверяют обычно..

0

Но если модератор захочет - даст ответ на исправление, я поправлю.