NUM.ONE——排列组合
var m,n,i,j,k,p,q:longint;
function f(x:longint):longint;
var t:longint;
begin
t:=1;
for i:=1 to x do
t:=t*i;
exit(t);
end;
begin
read(m,n);
writeln(f(m)div(f(m-n)*f(n)));
end.
NUM.TWO——快速幂
var i,j,k,l,m:longint;
t,a,b,n:int64;
function f(a,b,n:int64):int64;
var x,y:int64;
begin
x:=a;
y:=a;
t:=1;
while b<>0 do
begin
if (b and 1)=1 then
t:=t*y mod n;
b:=b shr 1;
y:=y*y mod n;
end;
exit(t);
end;
begin
readln(a,b,n);
writeln(f(a,b,n));
end.