Форум «Всё о Паскале» _ Задачи _ Задачка на Решето Эратосфена
Автор: Василий 18.05.2007 0:32
!
.doc удален, читаем правила. Дибо текст либо графика
Дано натуральное число n (n>=2). Найти все меньшие n простые числа, используя решето Эратосфена. Решетом Эратосфена называют следующий способ. Выпишем подряд все целые числа от 2 до n. Первое простое число 2. Подчеркнем его, а все большие числа, кратные 2, зачеркнем. Первое (меньшее) из оставшихся чисел 3. Подчеркнем его как простое, а все большие числа, кратные 3, зачеркнем. Первое из оставшихся чисел теперь 5, так как 4 уже зачеркнуто. Подчеркнем 5 как простое, а все большие числа , кратные 5, зачеркнем и т. д. 2,3,4,5,6,7,8,9,10,11 [1,№557]
Код Delphi :
var n,i,k:integer; b : array of boolean; begin writeln('input n: '); read(n); SetLength(b, n); for i:=2 to n do b[i]:=true; i:=2; repeat k:=i; repeat i:=i+k; b[i]:=false; until i>n; i:=k+1; until i>n; for i:=2 to n do if b[i]=true then write(i,' '); readln; readln; end.