Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Подскажите

Автор: ceccil 5.12.2007 12:22

надо составить массив из n чисел, которые должны быть составными и >40... пробовал много вариантов... сначало хотел отделить составные числа ползуясь их четностью.. кое че получилось но в массив никак не могу их сунуть отдельно составные числа прощитал но.... с массивом проблемки... мучаюсь 2 с лишним часа уже просто голова не варит. подскажите пожалуйста путь решения. Вот последний вариант решения задачи после которой уже не могу даже простую ошибку найти..


Код
program no1;
var n,k,i,j:integer; t:boolean;
x: array [1..100] of integer;
y: array [1..100] of integer;
begin
readln (n);
for k:=1 to n do
begin
for i:=41 to (41+2*k) do
begin
t:=true;
for j:=2 to (x[i]-1) do
if i mod j=0 then
begin
t:=false;
break end;
if t=true then
x(k):=j;
end;
writeln ('x[k]='x(k));
end;
end.



Автор: klem4 5.12.2007 13:48

http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE

пишешь функцию, которая проверяет, простое-ли число (на форуме есть реализации, есть она и в FAQ)

ну а потом

randomize;
for i := 1 to n do begin
repeat
value := 41 + random(100);
until not simple(value);
x[i] := value;
end;
end;


где simple(value) вернет true, если value - простое.