1272.SL的秘密 SDNUOJ 1272
Description
据说今天是男神SL的生日,但是他很低调,轻轻地送了一道大水题…
就是传说中的 " N !"
Input
每一行包含一个整数N(0 <= N<=10^9).
Output
对于每个数,输出 N! mod 2009
Sample Input
4
5
Sample Output
24
120
2009 = 41 * 7 * 7
当 n >= 41 时,阶乘是2009的倍数,对其取模 = 0;
#include <iostream>
using namespace std;
int fac(int n)
{
int ans = 1;
while(n)
{
ans = ans * n % 2009;///这里不能写成 ans *= n % 2009
n--;
}
return ans;
}
int main()
{
int n;
while(cin >> n)
{
if(n < 41)
cout << fac(n) << '\n';
else
cout << '0' << '\n';
}
return 0;
}