結果
問題 | No.502 階乗を計算するだけ |
ユーザー | mamekin |
提出日時 | 2017-04-07 22:43:13 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 56 ms / 1,000 ms |
コード長 | 3,876 bytes |
コンパイル時間 | 1,023 ms |
コンパイル使用メモリ | 105,872 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-16 02:40:03 |
合計ジャッジ時間 | 2,829 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
6,812 KB |
testcase_01 | AC | 2 ms
6,940 KB |
testcase_02 | AC | 2 ms
6,940 KB |
testcase_03 | AC | 2 ms
6,944 KB |
testcase_04 | AC | 2 ms
6,940 KB |
testcase_05 | AC | 2 ms
6,944 KB |
testcase_06 | AC | 2 ms
6,944 KB |
testcase_07 | AC | 2 ms
6,944 KB |
testcase_08 | AC | 2 ms
6,944 KB |
testcase_09 | AC | 2 ms
6,940 KB |
testcase_10 | AC | 2 ms
6,940 KB |
testcase_11 | AC | 2 ms
6,944 KB |
testcase_12 | AC | 2 ms
6,944 KB |
testcase_13 | AC | 2 ms
6,940 KB |
testcase_14 | AC | 2 ms
6,944 KB |
testcase_15 | AC | 2 ms
6,940 KB |
testcase_16 | AC | 2 ms
6,940 KB |
testcase_17 | AC | 2 ms
6,944 KB |
testcase_18 | AC | 2 ms
6,940 KB |
testcase_19 | AC | 2 ms
6,940 KB |
testcase_20 | AC | 2 ms
6,940 KB |
testcase_21 | AC | 2 ms
6,944 KB |
testcase_22 | AC | 7 ms
6,940 KB |
testcase_23 | AC | 3 ms
6,944 KB |
testcase_24 | AC | 5 ms
6,944 KB |
testcase_25 | AC | 3 ms
6,940 KB |
testcase_26 | AC | 4 ms
6,940 KB |
testcase_27 | AC | 4 ms
6,944 KB |
testcase_28 | AC | 4 ms
6,944 KB |
testcase_29 | AC | 3 ms
6,940 KB |
testcase_30 | AC | 7 ms
6,944 KB |
testcase_31 | AC | 4 ms
6,944 KB |
testcase_32 | AC | 35 ms
6,948 KB |
testcase_33 | AC | 56 ms
6,940 KB |
testcase_34 | AC | 52 ms
6,944 KB |
testcase_35 | AC | 56 ms
6,944 KB |
testcase_36 | AC | 30 ms
6,944 KB |
testcase_37 | AC | 56 ms
6,940 KB |
testcase_38 | AC | 25 ms
6,944 KB |
testcase_39 | AC | 50 ms
6,944 KB |
testcase_40 | AC | 11 ms
6,940 KB |
testcase_41 | AC | 2 ms
6,944 KB |
testcase_42 | AC | 2 ms
6,944 KB |
testcase_43 | AC | 2 ms
6,940 KB |
testcase_44 | AC | 2 ms
6,940 KB |
testcase_45 | AC | 2 ms
6,940 KB |
testcase_46 | AC | 2 ms
6,944 KB |
testcase_47 | AC | 2 ms
6,944 KB |
testcase_48 | AC | 2 ms
6,940 KB |
testcase_49 | AC | 2 ms
6,940 KB |
testcase_50 | AC | 2 ms
6,940 KB |
testcase_51 | AC | 2 ms
6,940 KB |
ソースコード
#define _USE_MATH_DEFINES #include <cstdio> #include <iostream> #include <sstream> #include <fstream> #include <iomanip> #include <algorithm> #include <cmath> #include <complex> #include <string> #include <vector> #include <list> #include <queue> #include <stack> #include <set> #include <map> #include <bitset> #include <numeric> #include <limits> #include <climits> #include <cfloat> #include <functional> #include <iterator> using namespace std; const int MOD = 1000000007; const vector<pair<int, int> > tmp = { { 0, 1 }, { 10000000, 682498929 }, { 20000000, 491101308 }, { 30000000, 76479948 }, { 40000000, 723816384 }, { 50000000, 67347853 }, { 60000000, 27368307 }, { 70000000, 625544428 }, { 80000000, 199888908 }, { 90000000, 888050723 }, { 100000000, 927880474 }, { 110000000, 281863274 }, { 120000000, 661224977 }, { 130000000, 623534362 }, { 140000000, 970055531 }, { 150000000, 261384175 }, { 160000000, 195888993 }, { 170000000, 66404266 }, { 180000000, 547665832 }, { 190000000, 109838563 }, { 200000000, 933245637 }, { 210000000, 724691727 }, { 220000000, 368925948 }, { 230000000, 268838846 }, { 240000000, 136026497 }, { 250000000, 112390913 }, { 260000000, 135498044 }, { 270000000, 217544623 }, { 280000000, 419363534 }, { 290000000, 500780548 }, { 300000000, 668123525 }, { 310000000, 128487469 }, { 320000000, 30977140 }, { 330000000, 522049725 }, { 340000000, 309058615 }, { 350000000, 386027524 }, { 360000000, 189239124 }, { 370000000, 148528617 }, { 380000000, 940567523 }, { 390000000, 917084264 }, { 400000000, 429277690 }, { 410000000, 996164327 }, { 420000000, 358655417 }, { 430000000, 568392357 }, { 440000000, 780072518 }, { 450000000, 462639908 }, { 460000000, 275105629 }, { 470000000, 909210595 }, { 480000000, 99199382 }, { 490000000, 703397904 }, { 500000000, 733333339 }, { 510000000, 97830135 }, { 520000000, 608823837 }, { 530000000, 256141983 }, { 540000000, 141827977 }, { 550000000, 696628828 }, { 560000000, 637939935 }, { 570000000, 811575797 }, { 580000000, 848924691 }, { 590000000, 131772368 }, { 600000000, 724464507 }, { 610000000, 272814771 }, { 620000000, 326159309 }, { 630000000, 456152084 }, { 640000000, 903466878 }, { 650000000, 92255682 }, { 660000000, 769795511 }, { 670000000, 373745190 }, { 680000000, 606241871 }, { 690000000, 825871994 }, { 700000000, 957939114 }, { 710000000, 435887178 }, { 720000000, 852304035 }, { 730000000, 663307737 }, { 740000000, 375297772 }, { 750000000, 217598709 }, { 760000000, 624148346 }, { 770000000, 671734977 }, { 780000000, 624500515 }, { 790000000, 748510389 }, { 800000000, 203191898 }, { 810000000, 423951674 }, { 820000000, 629786193 }, { 830000000, 672850561 }, { 840000000, 814362881 }, { 850000000, 823845496 }, { 860000000, 116667533 }, { 870000000, 256473217 }, { 880000000, 627655552 }, { 890000000, 245795606 }, { 900000000, 586445753 }, { 910000000, 172114298 }, { 920000000, 193781724 }, { 930000000, 778983779 }, { 940000000, 83868974 }, { 950000000, 315103615 }, { 960000000, 965785236 }, { 970000000, 492741665 }, { 980000000, 377329025 }, { 990000000, 847549272 }, { 1000000000, 698611116 }, { 1010000000, 0 }, }; int main() { long long n; cin >> n; if(n >= MOD){ cout << 0 << endl; return 0; } int k = 0; while(tmp[k+1].first < n) ++ k; long long x = tmp[k].second; for(long long i=tmp[k].first+1; i<=n; ++i){ x *= i; x %= MOD; } cout << x << endl; return 0; }