結果

問題 No.502 階乗を計算するだけ
ユーザー momen999momen999
提出日時 2017-04-18 08:51:17
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 175 ms / 1,000 ms
コード長 2,741 bytes
コンパイル時間 879 ms
コンパイル使用メモリ 104,320 KB
実行使用メモリ 17,920 KB
最終ジャッジ日時 2024-07-19 07:22:43
合計ジャッジ時間 4,475 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 20 ms
17,408 KB
testcase_01 AC 20 ms
17,536 KB
testcase_02 AC 21 ms
17,664 KB
testcase_03 AC 19 ms
17,408 KB
testcase_04 AC 20 ms
17,536 KB
testcase_05 AC 19 ms
17,664 KB
testcase_06 AC 19 ms
17,408 KB
testcase_07 AC 19 ms
17,920 KB
testcase_08 AC 19 ms
17,280 KB
testcase_09 AC 21 ms
17,664 KB
testcase_10 AC 20 ms
17,280 KB
testcase_11 AC 20 ms
17,664 KB
testcase_12 AC 18 ms
17,664 KB
testcase_13 AC 19 ms
17,408 KB
testcase_14 AC 19 ms
17,664 KB
testcase_15 AC 19 ms
17,664 KB
testcase_16 AC 19 ms
17,664 KB
testcase_17 AC 18 ms
17,664 KB
testcase_18 AC 19 ms
17,408 KB
testcase_19 AC 21 ms
17,408 KB
testcase_20 AC 21 ms
17,792 KB
testcase_21 AC 20 ms
17,280 KB
testcase_22 AC 34 ms
17,536 KB
testcase_23 AC 23 ms
17,280 KB
testcase_24 AC 28 ms
17,408 KB
testcase_25 AC 20 ms
17,664 KB
testcase_26 AC 24 ms
17,280 KB
testcase_27 AC 24 ms
17,536 KB
testcase_28 AC 25 ms
17,536 KB
testcase_29 AC 22 ms
17,280 KB
testcase_30 AC 33 ms
17,792 KB
testcase_31 AC 25 ms
17,536 KB
testcase_32 AC 116 ms
17,408 KB
testcase_33 AC 169 ms
17,664 KB
testcase_34 AC 158 ms
17,664 KB
testcase_35 AC 175 ms
17,536 KB
testcase_36 AC 101 ms
17,664 KB
testcase_37 AC 173 ms
17,664 KB
testcase_38 AC 83 ms
17,536 KB
testcase_39 AC 153 ms
17,664 KB
testcase_40 AC 43 ms
17,152 KB
testcase_41 AC 19 ms
17,664 KB
testcase_42 AC 20 ms
17,664 KB
testcase_43 AC 19 ms
17,408 KB
testcase_44 AC 20 ms
17,792 KB
testcase_45 AC 20 ms
17,792 KB
testcase_46 AC 19 ms
17,664 KB
testcase_47 AC 19 ms
17,536 KB
testcase_48 AC 19 ms
17,664 KB
testcase_49 AC 18 ms
17,536 KB
testcase_50 AC 18 ms
17,792 KB
testcase_51 AC 19 ms
17,664 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