简单题,就是求(N!)2009;
2009之前的直接f(n)=(n*f(n-1))%2009;即n的阶乘取余=各因子取余再求积;
2009之后n=n*(n-1)*.....*2009*2008*.....*1%2009=(n%2009) *.....(2009%2009)*(2008%2009)*.....=0*(.....)=0;
即2009之后的都有2009这个因子,2009%2009=0,0乘以任何数=0;所以2009以后都是0;
#include<stdio.h>
int main()
{
__int64 n,i,s;
while(scanf("%I64d",&n)!=EOF)
{
if(n>=2009)
printf("0\n");
else
{
for(i=s=1;i<=n;i++)
s=(s*(i%2009))%2009;
printf("%I64d\n",s);
}
}
return 0;
}