// PascalABC.NET 3.1, сборка 1239 от 08.05.2016 begin var nf:=ReadlnString('Значение n!').ToBigInteger; var n:=1; var f:=BigInteger(1); repeat f*=n; if f<nf then Inc(n) until f>=nf; if f=nf then Writeln('n=',n) else Writeln('Число не является факториалом') end.
Тестовое решение Значение n! 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000 n=63
var mas1, mas2: array[0..9] of integer; t, k, i, j: integer; begin readln(t); readln(k); for j := 0 to 1 do begin if (j = 1) then writeln(); for i := 0 to 9 do begin if(j = 0) then begin mas1[i] := random(100); write(mas1[i], ' '); if mas1[i] > t Then mas1[i] := mas1[i] + 4; end else begin mas2[i] := random(100); write(mas2[i], ' '); if mas2[i] > 10 * K Then mas2[i] := mas2[i] + K; end; end; for i := 0 to 9 do if (j = 0) then write(mas1[i]) else write(mas2[i]); writeln(); end; readln(); end.
Uses Crt; const n=10; var a,b:array[1..n] of integer; i,k,t:integer; begin ClrScr; Randomize; for i:=1 to n do begin a[i]:=Random(50); Write(a[i],' ') end; Writeln; for i:=1 to n do begin b[i]:=Random(50); Write(b[i],' ') end; Writeln; Write('k t='); Read(k,t); for i:=1 to n do begin if a[i]>t then a[i]:=a[i]+4; Write(a[i],' ') end; Writeln; for i:=1 to n do begin if b[i]>10*k then b[i]:=b[i]+k; Write(b[i],' ') end; Readkey end.
begin
var nf:=ReadlnString('Значение n!').ToBigInteger;
var n:=1;
var f:=BigInteger(1);
repeat
f*=n;
if f<nf then Inc(n)
until f>=nf;
if f=nf then Writeln('n=',n)
else Writeln('Число не является факториалом')
end.
Тестовое решение
Значение n! 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000
n=63