Что касается "детского" варианта, наверное самый простой алгоритм - решето Эратосфена. Да, красивое(но ресурсное) решение может получиться с использованием рекурсии(не знаю, допускает ли рекурсию школьный Паскаль, но поинтересуйтесь, что это такое).
Текст программы приводить не буду, он, вероятно, опубликован в каждом втором букваре по программированию.
1.Найти сумму чётных цифр числа.
uses crt;
var a,x:integer;
i,s:integer;
begin
clrscr;
writeln('Vvedite chislo');
readln( a ); x:=a;
s:=0;
while ( x<>0 ) do
begin
if x mod 2 =0 then s:= s + (x mod 10);
x:= x div 10;
end;
writeln( 'Summa= ', s );
readln;
end.
2.Вывести на экран таблицу умножения.
uses crt;
var a: array [1..10,1..10] of integer;
i,j:integer;
begin
clrscr;
for i:=2 to 10 do
begin
writeln;
for j:=1 to 10 do
write(i*j,' ');
end;
writeln;
readln;
end.
3.Найти все двухзначные числа, сумма которых равна а.
uses crt;
var a,x,i,s:integer;
begin
clrscr;
writeln('Vvedite a');
readln(a);
for i:=10 to 99 do
begin
x:=i;
s:=0;
while (x<>0) do
begin
s:=s+(x mod 10);
x:=x div 10;
end;
if s=a then write(i,' ');
end;
readln;
end.
4.Найти количество и сумму чётных делителей.
uses crt;
var s,k,i,a:integer;
begin
clrscr;
writeln('Vvedite chislo');
readln(a);
i:=2;
s:=0;
k:=0;
while i<>a do
begin
if (a mod i =0) and (i mod 2=0) then
begin
s:=s+i;
k:=k+1;
end;
i:=i+1;
end;
writeln('Summa chisletelei =',s);
writeln('Kolichestvo delitelei= ',k);
readln;
end.
Большой мощный калькулятор.