結果
問題 | No.502 階乗を計算するだけ |
ユーザー |
![]() |
提出日時 | 2017-04-08 00:34:12 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 452 ms / 1,000 ms |
コード長 | 573 bytes |
コンパイル時間 | 624 ms |
コンパイル使用メモリ | 66,520 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-16 03:34:13 |
合計ジャッジ時間 | 4,431 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 52 |
ソースコード
#include <iostream>#include <vector>#include <algorithm>#include <string>#include <iomanip>using namespace std;#define MOD (int)(1e9+7)long long umekomi[] = { 927880474,933245637,668123525,429277690,733333339,724464507,957939114,203191898,586445753,698611116 };int main(){long long n;cin >> n;if (n >= MOD)cout << 0 << endl;else {long long a = 1;for (long long i = n; i > 1; i--) {if (i % (int)(1e8) == 0) {a *= umekomi[i / (int)(1e8) - 1];a %= MOD;break;}a *= i;a %= MOD;}cout << a << endl;}return 0;}