Ну вот я как то скомбинировал Эйлера и раскрытие скобок, может поможет
Там где b:=a/2;
должно быть b:=a div 2;
/ - в паскале не не означает деление
Первое задание=0,064Гб, второе=800мб
Количество вхождений символа в строку, а также позиция символа в строке - это целочисленные величины. Если язык программирования допускает множество представлений целых величин, можно выбирать любое из них, поскольку найденные значения будут лежать в диапазоне [1;20] - по количеству символов в строке.