結果

問題 No.502 階乗を計算するだけ
ユーザー momen999momen999
提出日時 2017-04-18 08:51:17
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 217 ms / 1,000 ms
コード長 2,741 bytes
コンパイル時間 4,043 ms
コンパイル使用メモリ 106,940 KB
実行使用メモリ 22,768 KB
最終ジャッジ日時 2023-09-26 12:58:01
合計ジャッジ時間 9,885 ms
ジャッジサーバーID
(参考情報)
judge14 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 51 ms
22,756 KB
testcase_01 AC 52 ms
20,728 KB
testcase_02 AC 52 ms
20,648 KB
testcase_03 AC 52 ms
20,708 KB
testcase_04 AC 56 ms
18,692 KB
testcase_05 AC 50 ms
20,600 KB
testcase_06 AC 51 ms
20,644 KB
testcase_07 AC 50 ms
20,596 KB
testcase_08 AC 51 ms
20,608 KB
testcase_09 AC 52 ms
20,804 KB
testcase_10 AC 52 ms
20,636 KB
testcase_11 AC 55 ms
22,768 KB
testcase_12 AC 54 ms
20,720 KB
testcase_13 AC 55 ms
22,652 KB
testcase_14 AC 51 ms
20,632 KB
testcase_15 AC 52 ms
20,636 KB
testcase_16 AC 52 ms
20,532 KB
testcase_17 AC 54 ms
22,660 KB
testcase_18 AC 52 ms
20,640 KB
testcase_19 AC 53 ms
22,572 KB
testcase_20 AC 53 ms
22,736 KB
testcase_21 AC 52 ms
22,636 KB
testcase_22 AC 68 ms
22,624 KB
testcase_23 AC 56 ms
20,748 KB
testcase_24 AC 62 ms
20,812 KB
testcase_25 AC 53 ms
20,744 KB
testcase_26 AC 58 ms
20,604 KB
testcase_27 AC 56 ms
20,708 KB
testcase_28 AC 58 ms
22,684 KB
testcase_29 AC 55 ms
20,592 KB
testcase_30 AC 71 ms
22,580 KB
testcase_31 AC 59 ms
20,608 KB
testcase_32 AC 149 ms
20,696 KB
testcase_33 AC 217 ms
22,652 KB
testcase_34 AC 201 ms
20,516 KB
testcase_35 AC 212 ms
22,664 KB
testcase_36 AC 138 ms
22,756 KB
testcase_37 AC 206 ms
20,612 KB
testcase_38 AC 117 ms
20,604 KB
testcase_39 AC 192 ms
20,636 KB
testcase_40 AC 78 ms
22,572 KB
testcase_41 AC 53 ms
20,536 KB
testcase_42 AC 52 ms
20,608 KB
testcase_43 AC 52 ms
18,564 KB
testcase_44 AC 51 ms
20,600 KB
testcase_45 AC 51 ms
20,600 KB
testcase_46 AC 52 ms
20,616 KB
testcase_47 AC 52 ms
20,656 KB
testcase_48 AC 55 ms
20,724 KB
testcase_49 AC 54 ms
20,568 KB
testcase_50 AC 53 ms
20,720 KB
testcase_51 AC 54 ms
20,620 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Program
{
	static long LPow (long x, long n)
	{
		if (n == 0)
			return 1;
		return x * LPow(x, n - 1);
	}

	static void Main(string[] args)
	{
		// 一億(1000000000)桁のループが重すぎるので一億の位はデータをあらかじめ算出しておく
		// それでも重いので百万(10000000)桁から出力しておく
		//long[] modlist = { 1, 927880474, 933245637, 668123525, 429277690, 733333339, 724464507, 957939114, 203191898, 586445753, 698611116 };
		long[] modlist = {
							1,
							682498929,
							491101308,
							76479948,
							723816384,
							67347853,
							27368307,
							625544428,
							199888908,
							888050723,
							927880474,
							281863274,
							661224977,
							623534362,
							970055531,
							261384175,
							195888993,
							66404266,
							547665832,
							109838563,
							933245637,
							724691727,
							368925948,
							268838846,
							136026497,
							112390913,
							135498044,
							217544623,
							419363534,
							500780548,
							668123525,
							128487469,
							30977140,
							522049725,
							309058615,
							386027524,
							189239124,
							148528617,
							940567523,
							917084264,
							429277690,
							996164327,
							358655417,
							568392357,
							780072518,
							462639908,
							275105629,
							909210595,
							99199382,
							703397904,
							733333339,
							97830135,
							608823837,
							256141983,
							141827977,
							696628828,
							637939935,
							811575797,
							848924691,
							131772368,
							724464507,
							272814771,
							326159309,
							456152084,
							903466878,
							92255682,
							769795511,
							373745190,
							606241871,
							825871994,
							957939114,
							435887178,
							852304035,
							663307737,
							375297772,
							217598709,
							624148346,
							671734977,
							624500515,
							748510389,
							203191898,
							423951674,
							629786193,
							672850561,
							814362881,
							823845496,
							116667533,
							256473217,
							627655552,
							245795606,
							586445753,
							172114298,
							193781724,
							778983779,
							83868974,
							315103615,
							965785236,
							492741665,
							377329025,
							847549272,
							698611116,
						};

		long n = Int64.Parse( Console.ReadLine() );

		long m = LPow(10, 9) + 7;

		if (n >= m)
		{
			Console.WriteLine(0);
			return;
		}

		long ans = modlist[n / 10000000];
		long n2 = n + 1;
		for (long i = n / 10000000 * 10000000 + 1; i < n2; ++i )
		{
			ans = ans * i % m;
		}

		Console.WriteLine(ans);
	}
}
0