求大佬检查一下为啥报错…………
查看原帖
求大佬检查一下为啥报错…………
535508
xcd111907楼主2021/8/29 14:19
#include<bits/stdc++.h>
using namespace std;
namespace raw{
	inline long long read()
	{
		long long x=0;int f=1;
		char c=getchar();
		while(c<'0'||c>'9'){if(c=='-')f*=-1;c=getchar();}
		while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+c-'0';c=getchar();}
		return f*x;
	}
	void write(long long x)
	{
		if(x/10>0) write(x/10);
		putchar(x%10+48);
		return;
	}
}
using namespace raw;
long long fact(long long n)
{
	if(n<=1)
	return 1;
	return n*fact(n-1);
}
long long C(long long n,long long m)
{
	long long sum=0;
	sum=fact(n)/(fact(m)*fact(n-m));
	if(m>n)sum=0;
	return sum;
}
long long fact2(long long n,long long p){
	if(n==1)return 1;
	return C(n,n/2)*(fact2(n/2)*fact2(n/2))%p;
}
int main()
{
	long long n=read(),p=read();
	cout<<fact2(n,p);
    return 0;
}
2021/8/29 14:19
加载中...