Другие языки программирования и технологии

Задача по информатике: Найти все простые числа в промежутке от 20 до 70 ? Не могу решить

На самом деле оба предыдущих ответа обладают сомнительной ценностью :) То, что написал Gennady, конечно верно, но это ответ из разряда "Напиши Begin ...End" а между ними код который проверяет число на простоту. Оновная проблема состоит именно в алгоритме определения того, является ли число простым.

Самый очевидный способ носит название "Решето Эратосфена". для конкретно этой задачи, нужно рассмотреть числа от 1 до 70

1, 2, 3, 4, 5, 6, ..68, 69, 70

далее берем 2 и ищем в этой последовательности все числа которые делятся на два. (т. е. (a mod b)=0). Все найденные таким образом числа исключаем из последовательности (формируем новую без них) . В данном случае останется 1,2,3,5,...69. В этой последовательности берем следующее число, т. е. 3 и далее исключаем все числа делящиеся на 3. и так пока не дойдем до конца.

В конце мы получим список простых чисел в промежутке от 1 до 70. На этот список накладываем ограничение чтоб было больше 20 и меьше 70 и получаем список простых чисел из этого диапазона
Adil Forever
Adil Forever
1 482
Лучший ответ
Доброго времени суток.

Простые, это когда делится на единицу и самое себя, novel. А по задаче, пишите функцию, проверяющую тот факт, что число простое, а дальше в цикле обращаетесь к ней.

for i:=20 to 70 do if IsSimple(i) then WriteLn(i);

Удачи!
Руслан Бутаев
Руслан Бутаев
59 613
var p:boolean; var i,k:integer;
begin
for k:=20 to 70 do
begin
if k>1 then begin p:=true; for i:=2 to trunc(sqrt(k+1)) do
if k mod i = 0 then begin p:=false; break end end else p:=false;
if p then writeln(k)
end;
readln
end.
Юрий Панкратов
Юрий Панкратов
22 474
да, да, снизу есть ответ!!