function f(n:integer):real; var p:real; i:integer; begin p:=1; for i:=1 to n do p:=p*i; f:=p end;
var x,y,z:integer;
begin Write('Введите x,y,z через пробел: '); Read(x,y,z); Writeln((f(x)+f(y))*f(z)) end.
Примеры Введите x,y,z через пробел: 8 12 5 57485030400
Введите x,y,z через пробел: 23 15 41 8.64815278005251E+71
2. Современное решение
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var f:integer->BigIinteger:=n->1.To(n).Aggregate(BigInteger(1),(x,y)->x*y); var (x,y,z):=ReadInteger3('Введите x,y,z через пробел:'); Writeln((f(x)+f(y))*f(z)) end.
Примеры Введите x,y,z через пробел: 8 12 5 57485030400
Введите x,y,z через пробел: 23 15 41 864815278005250908694716268480895614135710289321049211273216000000000000
2^3x/8=2^5*2^20/8 (байт)
2^x=2^25 (байт)
x=25
16(в степени х) Кб=16Гб
2^4x*2^10=2^4*2^30 байт
2^(4x+10)=2^34
4x+10=34
4x=24
x=6