Нужно решить задачу, вне формула C=N!/M!*(N-M)!. При значении N=21, значение N! не помещается никуда, пробовал QWord, integer, longint, word, int64, longword ошибки 201 и 215. N и M меньше 50000.
Код:
function Prost(a:QWord):boolean;
var i:int64;
f:boolean;
begin
if a<2 then f:=false
else
begin
f:=true;
i:=2;
while (i*i<=a) and f do
if a mod i=0 then f:=false
else i:=i+1;
end;
Prost:=f;
end;
function fact(k: QWord) : QWord;
var
p: QWord;
i: integer;
begin
p:=1;
for i:=2 to k do
begin
p:=p*i;
End;
fact:= p;
end;
var
N, M, C, count : QWord;
i : integer;
begin
read(N);
read(M);
count:= 0;
C:= fact(N) div (fact(M) * fact(N - M));
for i:= 1 to C do
Begin
if C mod i = 0 then
Begin
if Prost(i) then inc(count);
End;
End;
write(count);
End.