Вычислим остатки от деления обоих чисел на 9, для этого заметив, что у числа 10a + c такой же остаток, что и у a + c. Тогда можно, считывая цифру за цифрой, получить остаток для всего числа. Дальше проверяем, чем равно произведение остатков: если делится на 9, то произведение делится на 9, иначе не делится.
function mod9(f: text): integer;
var
c: char;
rem: integer;
begin
rem := 0;
while not eoln(f) do
begin
read(f, c);
rem := (rem + ord(c) - ord('0')) mod 9;
end;
readln(f);
mod9 := rem;
end;
var
f: text;
a: integer;
begin
assign(f, 'input.txt');
reset(f);
a := mod9(f) * mod9(f);
close(f);
assign(f, 'output.txt');
rewrite(f);
writeln(f, a);
if a mod 9 = 0 then
write(f, 'YES')
else
write(f, 'NO');
close(f);
end.