ayit第十五周训练d题

WhereIsHeroFrom:             Zty, what are you doing ?
Zty:                                     I want to calculate N!......
WhereIsHeroFrom:             So easy! How big N is ?
Zty:                                    1 <=N <=1000000000000000000000000000000000000000000000…
WhereIsHeroFrom:             Oh! You must be crazy! Are you Fa Shao?
Zty:                                     No. I haven's finished my saying. I just said I want to calculate N! mod 2009


Hint : 0! = 1, N! = N*(N-1)!

Input

Each line will contain one integer N(0 <= N<=10^9). Process to end of file.

Output

For each case, output N! mod 2009

Sample Input

4 
5

Sample Output

24
120

 

 

#include
int main()
{
	int i,j,n,sum=1;
	while(~scanf("%d",&n))
	{
		if(n>41)
		printf("0\n");
		else if(n==0)
		printf("1\n");
		else if(n<=41)
		{
			sum=1;
			for(i=1;i<=n;i++)
			 {
			 	sum=(sum*(i%2009))%2009;
			 }
			 printf("%d\n",sum);
		}
	}
	return 0;
}

题意   求阶层 

思路   其实大数据就是吓人的。我们知道2009=7*7*41;所以在41以后都是0了。然后前面暴力就可以

你可能感兴趣的:(ayit第十五周训练d题)