Var N,factorial,i: integer; begin factorial:=1; write('Введите N: '); readln(N); if N mod 2 = 0 then begin for i:= 1 to N do if i mod 2 = 0 then factorial:=factorial*i; end else begin for i:= 1 to N do if i mod 2 = 1 then factorial:=factorial*i; end; writeln('N!! = ',factorial); end.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
Writeln(SeqWhile(n.IsOdd?1:2,i->i+2,i->i<=n).
Aggregate(BigInteger(1),(i,j)->i*j))
end.
Примеры
n= 10
3840
n= 7
105
n= 2017
41003146156503973951387230159955303747025133177308045511939711380049285936831854002506402266312956353673356191660497260050048407767456771658853041963632528210363444619891161953241396829852516221070722729481708118915240746993193657502899271781677228008565294510213216611900385572033538298383898276842136689466860892250973909048642357231842344733224927512429041805150383192236110739671653572172534585589678846579990165279636099252876842067904084020683637609495974057838353222190356556272528490424700585390890299972726579431412489074890200391130480639707092710189135514633433273333423650932561836213021755525455319742717662746273963809055678207901452155071624880336122774844145644638220704517508542500058666464069611039242911302866508033996016811447261225475230397936645236025463758706438002893575299691882827728929641104769030206646566596029108950442520411846952825395607214295131021592371711132413422532196167011749779157190407825418444457411396661551036268908400405816810879561932179497731977280144260643681539901420993095228077595383861488073857216465675022938483911851493095951891286859133595538356949569394858272151164039994291248341691701047747518227566914454622504712330635333719569666538980536667965220503586554960080844112977597948786914483625497937929541124026275776642713159637885069818204703080091168970066633753822353585211033537877702937052567083191597258285400336896147441497677747659951559408296163386352319764780403871655221308911526245251746673682651418122472796308910597745022033473679921986831790342351361744493472356131898220884395126168043958325049137419184834738094927951453777893527178019401550636464040087025451231084604994698991743688866415917598880518809631695769163435608801918432208785254542641403764924254573564804837279588255945283069216739437514498489305283075649042439928225953058454953341542990345707478676949894630405886924972647315400907351221280233026830236633053561256089747039907293014543919098819645878988961157708030997309771482210431420057259364038967336963513192823968030510976303454939547849481899665764122262149498054836845943462527782974293847355620537004180294596962343224064567971728034874832638873085152807212836880552534043149502030405109806971186035576149566350948793640615020232116079429724077026433648942183453927310496695853125976954691004845522144639228512230631447779035358306537808480258127426072758931627363909268547185886609072523644534012007668436821704610141492057148082187088723329678288942319700004758890858991371305853166823376675038348055035061979674857747657127371205441276370498634612948942405143039727583703571729420485794412594659346741995193391322237405955707954475264826868525384237465817151326660983758526542430383804011557647693841385141770328880907765662865732661503901105394290812668026335043953605771259752210187358625707817100895618471955477524112457344783026138728398485154246475882511280275366516434587538242340087890625
N,factorial,i: integer;
begin
factorial:=1;
write('Введите N: ');
readln(N);
if N mod 2 = 0 then begin
for i:= 1 to N do
if i mod 2 = 0 then factorial:=factorial*i;
end
else begin
for i:= 1 to N do
if i mod 2 = 1 then factorial:=factorial*i;
end;
writeln('N!! = ',factorial);
end.