hdu 2674 (数论,N!)

点击打开链接


分析:

本来以为大数,后来才发现要对2009求余,所以一下子就简单了。。。。。。

当n=41时,n!%2009==0。之后的就为0了。

#include"stdio.h"
#include"string.h"
int dp[41];
void fun()
{
	int i;
	dp[0]=1;
	dp[1]=1;
	dp[2]=2;
	for(i=3;i<=40;i++)
		dp[i]=(dp[i-1]*i)%2009;
}

int main()
{
	int n;
	int i,j;
	fun();
	while(scanf("%d",&n)!=-1)
	{
		if(n>40)printf("0\n");
		else printf("%d\n",dp[n]);
	}
	return 0;
}


你可能感兴趣的:(hdu 2674 (数论,N!))