#include <iostream>
#include <algorithm>
using namespace std;
const int M = 41;
int d[M];
// 求 N! %2009 ( N<10^9 )
// 因为 2009= 41*7*7 -> 40!以后的数都是 2009的倍数
int main()
{
d[0]=1;
for(int i=1;i<=M-1;i++)
{
d[i]=(d[i-1]*i)%2009;
}
long n;
while(cin>>n)
{
if(n<41)
cout<<d[n]%2009<<endl;
else
cout<<0<<endl; // 因为 2009= 41*7*7 -> 40!以后的数都是 2009的倍数
}
return 0;
}
hdu 2674 n!余数 (找规律)
最新推荐文章于 2019-08-21 02:58:33 发布