Цикл "поки" та його використання
while k
begin
if n mod k=0 then issimple:=false;
k:=k+1
end
Внесемо істотніші поліпшення. Перше. Якщо n=k1k2, де k1 і k2 обидва більше 1 і менше n, то одне з цих чисел обов'язково не більше, ніж . Тому для того, щоб дізнатися, чи є простим число n, достатньо перевірити його подільність на числа від 1 до [ ], де [x] позначає цілу частину x. Тоді умова продовження перевірок виражається як k
Щоб не обчислювати trunc(sqrt(n))+1 при кожному виконанні циклу, означимо допоміжну змінну tsn і присвоїмо їй trunc(sqrt(n))+1.
Друге. Після того, як у циклі змінна issimple одержала значення false, подальші перевірки не потрібні, тому що вже ясно, що n не просте. Тому до умови продовження слід додати, що issimple має значення "істина". А перевірка цієї умови задається таким виразом: issimple.
Було б природно записати вираз (k
while (k
begin
if n mod k=0 then simp:=false;
k:=k+1
end;
issimple:=simp
Оформлення функції з заголовком
function issimple(n:integer):boolean
лишаємо для вправи. Відзначимо ще раз, що тіло функції треба записувати так, що при виконанні її виклику виконувався хоча б один оператор присвоювання з її ім'ям у лівій частині.
З цього прикладу напрошується простий висновок: після того, як алгоритм розв'язання задачі написаний, майже ніколи не пізно і не завадить подумати про те, як його поліпшити.
Поліпшення алгоритму й програми можуть стосуватися таких цілком різних властивостей, як зрозумілість, обсяг пам'яті комп'ютера, що використовується, та кількість дій, заданих програмою. А ця кількість визначає тривалість виконання програми, яка іноді буває дуже істотною.