Ето малко идеи и от мен:

Първо можеш да запишеш извън цикълът "2" в текстовото поле. То очевидно е просто число и ще го запишем извън алгоритъмът за намиране на простите между 1 и 5000.

По този начин цикълът, който ще обхожда числата от 2 до 5000, можеш да стане от 3 до 5000 step 2. С други думи ще обхожда всички нечетни числа от 3 до 5000 (защото четните не са прости). Цикълът проверява с вътрешен цикъл дали числото е просто и го записва в текстовото поле, ако то е такова (ако flag=true).

Вътрешният цикъл за проверка на числата може да се реализира с един for. Да кажем, че проверяваш дали числото "р" е просто. Тогава цикълът може да е за i = 1 to sqrt(p) (или по-точно до закръгленото към по-малкото цяло число sqrt(p) ). На всяка стъпка проверяваш дали p mod i = 0 (ако това е вярно, то flag=false).


Псевдокод:

TekstovoPole.Zapisvane(2);

for j = 3 to 4999 step 2

begin na purvi for

for i = 1 to zakrugleno(sqrt(j))

begin na vtori for

if (j mod i = 0)

flag = false;

end na vtori for

if (flag = true)

TekstovoPole.Zapisvane(j)

flag=true;

end na purvi for


Нещо такова би трябвало да е.