結果

問題 No.502 階乗を計算するだけ
ユーザー GrenacheGrenache
提出日時 2017-04-09 11:54:15
言語 Java21
(openjdk 21)
結果
AC  
実行時間 189 ms / 1,000 ms
コード長 15,680 bytes
コンパイル時間 3,627 ms
コンパイル使用メモリ 74,924 KB
実行使用メモリ 57,924 KB
最終ジャッジ日時 2023-09-25 01:18:32
合計ジャッジ時間 13,326 ms
ジャッジサーバーID
(参考情報)
judge13 / judge15
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 121 ms
55,720 KB
testcase_01 AC 123 ms
55,660 KB
testcase_02 AC 125 ms
54,168 KB
testcase_03 AC 121 ms
56,004 KB
testcase_04 AC 125 ms
56,272 KB
testcase_05 AC 125 ms
55,788 KB
testcase_06 AC 121 ms
55,964 KB
testcase_07 AC 125 ms
55,356 KB
testcase_08 AC 123 ms
55,856 KB
testcase_09 AC 124 ms
55,932 KB
testcase_10 AC 123 ms
55,364 KB
testcase_11 AC 122 ms
57,924 KB
testcase_12 AC 124 ms
55,872 KB
testcase_13 AC 120 ms
56,064 KB
testcase_14 AC 121 ms
55,608 KB
testcase_15 AC 123 ms
55,644 KB
testcase_16 AC 123 ms
55,800 KB
testcase_17 AC 127 ms
55,728 KB
testcase_18 AC 122 ms
55,284 KB
testcase_19 AC 119 ms
55,360 KB
testcase_20 AC 125 ms
55,984 KB
testcase_21 AC 124 ms
55,776 KB
testcase_22 AC 188 ms
56,244 KB
testcase_23 AC 158 ms
56,328 KB
testcase_24 AC 182 ms
56,620 KB
testcase_25 AC 144 ms
55,912 KB
testcase_26 AC 159 ms
56,652 KB
testcase_27 AC 155 ms
56,540 KB
testcase_28 AC 153 ms
56,176 KB
testcase_29 AC 159 ms
56,224 KB
testcase_30 AC 189 ms
56,420 KB
testcase_31 AC 174 ms
56,684 KB
testcase_32 AC 148 ms
56,028 KB
testcase_33 AC 188 ms
56,672 KB
testcase_34 AC 155 ms
56,764 KB
testcase_35 AC 189 ms
56,136 KB
testcase_36 AC 155 ms
56,676 KB
testcase_37 AC 187 ms
56,360 KB
testcase_38 AC 155 ms
55,988 KB
testcase_39 AC 182 ms
56,756 KB
testcase_40 AC 177 ms
56,388 KB
testcase_41 AC 123 ms
55,684 KB
testcase_42 AC 124 ms
55,632 KB
testcase_43 AC 131 ms
55,768 KB
testcase_44 AC 124 ms
55,592 KB
testcase_45 AC 122 ms
55,508 KB
testcase_46 AC 125 ms
56,300 KB
testcase_47 AC 124 ms
55,556 KB
testcase_48 AC 125 ms
56,028 KB
testcase_49 AC 124 ms
55,552 KB
testcase_50 AC 122 ms
56,032 KB
testcase_51 AC 122 ms
55,540 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.*;
import java.util.*;


public class Main_yukicoder502 {

	private static Scanner sc;
	private static Printer pr;

	private static void solve() {
		int[] fact = {
				1,
				641102369,
				578095319,
				5832229,
				259081142,
				974067448,
				316220877,
				690120224,
				251368199,
				980250487,
				682498929,
				134623568,
				95936601,
				933097914,
				167332441,
				598816162,
				336060741,
				248744620,
				626497524,
				288843364,
				491101308,
				245341950,
				565768255,
				246899319,
				968999,
				586350670,
				638587686,
				881746146,
				19426633,
				850500036,
				76479948,
				268124147,
				842267748,
				886294336,
				485348706,
				463847391,
				544075857,
				898187927,
				798967520,
				82926604,
				723816384,
				156530778,
				721996174,
				299085602,
				323604647,
				172827403,
				398699886,
				530389102,
				294587621,
				813805606,
				67347853,
				497478507,
				196447201,
				722054885,
				228338256,
				407719831,
				762479457,
				746536789,
				811667359,
				778773518,
				27368307,
				438371670,
				59469516,
				5974669,
				766196482,
				606322308,
				86609485,
				889750731,
				340941507,
				371263376,
				625544428,
				788878910,
				808412394,
				996952918,
				585237443,
				1669644,
				361786913,
				480748381,
				595143852,
				837229828,
				199888908,
				526807168,
				579691190,
				145404005,
				459188207,
				534491822,
				439729802,
				840398449,
				899297830,
				235861787,
				888050723,
				656116726,
				736550105,
				440902696,
				85990869,
				884343068,
				56305184,
				973478770,
				168891766,
				804805577,
				927880474,
				876297919,
				934814019,
				676405347,
				567277637,
				112249297,
				44930135,
				39417871,
				47401357,
				108819476,
				281863274,
				60168088,
				692636218,
				432775082,
				14235602,
				770511792,
				400295761,
				697066277,
				421835306,
				220108638,
				661224977,
				261799937,
				168203998,
				802214249,
				544064410,
				935080803,
				583967898,
				211768084,
				751231582,
				972424306,
				623534362,
				335160196,
				243276029,
				554749550,
				60050552,
				797848181,
				395891998,
				172428290,
				159554990,
				887420150,
				970055531,
				250388809,
				487998999,
				856259313,
				82104855,
				232253360,
				513365505,
				244109365,
				1559745,
				695345956,
				261384175,
				849009131,
				323214113,
				747664143,
				444090941,
				659224434,
				80729842,
				570033864,
				664989237,
				827348878,
				195888993,
				576798521,
				457882808,
				731551699,
				212938473,
				509096183,
				827544702,
				678320208,
				677711203,
				289752035,
				66404266,
				555972231,
				195290384,
				97136305,
				349551356,
				785113347,
				83489485,
				66247239,
				52167191,
				307390891,
				547665832,
				143066173,
				350016754,
				917404120,
				296269301,
				996122673,
				23015220,
				602139210,
				748566338,
				187348575,
				109838563,
				574053420,
				105574531,
				304173654,
				542432219,
				34538816,
				325636655,
				437843114,
				630621321,
				26853683,
				933245637,
				616368450,
				238971581,
				511371690,
				557301633,
				911398531,
				848952161,
				958992544,
				925152039,
				914456118,
				724691727,
				636817583,
				238087006,
				946237212,
				910291942,
				114985663,
				492237273,
				450387329,
				834860913,
				763017204,
				368925948,
				475812562,
				740594930,
				45060610,
				806047532,
				464456846,
				172115341,
				75307702,
				116261993,
				562519302,
				268838846,
				173784895,
				243624360,
				61570384,
				481661251,
				938269070,
				95182730,
				91068149,
				115435332,
				495022305,
				136026497,
				506496856,
				710729672,
				113570024,
				366384665,
				564758715,
				270239666,
				277118392,
				79874094,
				702807165,
				112390913,
				730341625,
				103056890,
				677948390,
				339464594,
				167240465,
				108312174,
				839079953,
				479334442,
				271788964,
				135498044,
				277717575,
				591048681,
				811637561,
				353339603,
				889410460,
				839849206,
				192345193,
				736265527,
				316439118,
				217544623,
				788132977,
				618898635,
				183011467,
				380858207,
				996097969,
				898554793,
				335353644,
				54062950,
				611251733,
				419363534,
				965429853,
				160398980,
				151319402,
				990918946,
				607730875,
				450718279,
				173539388,
				648991369,
				970937898,
				500780548,
				780122909,
				39052406,
				276894233,
				460373282,
				651081062,
				461415770,
				358700839,
				643638805,
				560006119,
				668123525,
				686692315,
				673464765,
				957633609,
				199866123,
				563432246,
				841799766,
				385330357,
				504962686,
				954061253,
				128487469,
				685707545,
				299172297,
				717975101,
				577786541,
				318951960,
				773206631,
				306832604,
				204355779,
				573592106,
				30977140,
				450398100,
				363172638,
				258379324,
				472935553,
				93940075,
				587220627,
				776264326,
				793270300,
				291733496,
				522049725,
				579995261,
				335416359,
				142946099,
				472012302,
				559947225,
				332139472,
				499377092,
				464599136,
				164752359,
				309058615,
				86117128,
				580204973,
				563781682,
				954840109,
				624577416,
				895609896,
				888287558,
				836813268,
				926036911,
				386027524,
				184419613,
				724205533,
				403351886,
				715247054,
				716986954,
				830567832,
				383388563,
				68409439,
				6734065,
				189239124,
				68322490,
				943653305,
				405755338,
				811056092,
				179518046,
				825132993,
				343807435,
				985084650,
				868553027,
				148528617,
				160684257,
				882148737,
				591915968,
				701445829,
				529726489,
				302177126,
				974886682,
				241107368,
				798830099,
				940567523,
				11633075,
				325334066,
				346091869,
				115312728,
				473718967,
				218129285,
				878471898,
				180002392,
				699739374,
				917084264,
				856859395,
				435327356,
				808651347,
				421623838,
				105419548,
				59883031,
				322487421,
				79716267,
				715317963,
				429277690,
				398078032,
				316486674,
				384843585,
				940338439,
				937409008,
				940524812,
				947549662,
				833550543,
				593524514,
				996164327,
				987314628,
				697611981,
				636177449,
				274192146,
				418537348,
				925347821,
				952831975,
				893732627,
				1277567,
				358655417,
				141866945,
				581830879,
				987597705,
				347046911,
				775305697,
				125354499,
				951540811,
				247662371,
				343043237,
				568392357,
				997474832,
				209244402,
				380480118,
				149586983,
				392838702,
				309134554,
				990779998,
				263053337,
				325362513,
				780072518,
				551028176,
				990826116,
				989944961,
				155569943,
				596737944,
				711553356,
				268844715,
				451373308,
				379404150,
				462639908,
				961812918,
				654611901,
				382776490,
				41815820,
				843321396,
				675258797,
				845583555,
				934281721,
				741114145,
				275105629,
				666247477,
				325912072,
				526131620,
				252551589,
				432030917,
				554917439,
				818036959,
				754363835,
				795190182,
				909210595,
				278704903,
				719566487,
				628514947,
				424989675,
				321685608,
				50590510,
				832069712,
				198768464,
				702004730,
				99199382,
				707469729,
				747407118,
				302020341,
				497196934,
				5003231,
				726997875,
				382617671,
				296229203,
				183888367,
				703397904,
				552133875,
				732868367,
				350095207,
				26031303,
				863250534,
				216665960,
				561745549,
				352946234,
				784139777,
				733333339,
				503105966,
				459878625,
				803187381,
				16634739,
				180898306,
				68718097,
				985594252,
				404206040,
				749724532,
				97830135,
				611751357,
				31131935,
				662741752,
				864326453,
				864869025,
				167831173,
				559214642,
				718498895,
				91352335,
				608823837,
				473379392,
				385388084,
				152267158,
				681756977,
				46819124,
				313132653,
				56547945,
				442795120,
				796616594,
				256141983,
				152028387,
				636578562,
				385377759,
				553033642,
				491415383,
				919273670,
				996049638,
				326686486,
				160150665,
				141827977,
				540818053,
				693305776,
				593938674,
				186576440,
				688809790,
				565456578,
				749296077,
				519397500,
				551096742,
				696628828,
				775025061,
				370732451,
				164246193,
				915265013,
				457469634,
				923043932,
				912368644,
				777901604,
				464118005,
				637939935,
				956856710,
				490676632,
				453019482,
				462528877,
				502297454,
				798895521,
				100498586,
				699767918,
				849974789,
				811575797,
				438952959,
				606870929,
				907720182,
				179111720,
				48053248,
				508038818,
				811944661,
				752550134,
				401382061,
				848924691,
				764368449,
				34629406,
				529840945,
				435904287,
				26011548,
				208184231,
				446477394,
				206330671,
				366033520,
				131772368,
				185646898,
				648711554,
				472759660,
				523696723,
				271198437,
				25058942,
				859369491,
				817928963,
				330711333,
				724464507,
				437605233,
				701453022,
				626663115,
				281230685,
				510650790,
				596949867,
				295726547,
				303076380,
				465070856,
				272814771,
				538771609,
				48824684,
				951279549,
				939889684,
				564188856,
				48527183,
				201307702,
				484458461,
				861754542,
				326159309,
				181594759,
				668422905,
				286273596,
				965656187,
				44135644,
				359960756,
				936229527,
				407934361,
				267193060,
				456152084,
				459116722,
				124804049,
				262322489,
				920251227,
				816929577,
				483924582,
				151834896,
				167087470,
				490222511,
				903466878,
				361583925,
				368114731,
				339383292,
				388728584,
				218107212,
				249153339,
				909458706,
				322908524,
				202649964,
				92255682,
				573074791,
				15570863,
				94331513,
				744158074,
				196345098,
				334326205,
				9416035,
				98349682,
				882121662,
				769795511,
				231988936,
				888146074,
				137603545,
				582627184,
				407518072,
				919419361,
				909433461,
				986708498,
				310317874,
				373745190,
				263645931,
				256853930,
				876379959,
				702823274,
				147050765,
				308186532,
				175504139,
				180350107,
				797736554,
				606241871,
				384547635,
				273712630,
				586444655,
				682189174,
				666493603,
				946867127,
				819114541,
				502371023,
				261970285,
				825871994,
				126925175,
				701506133,
				314738056,
				341779962,
				561011609,
				815463367,
				46765164,
				49187570,
				188054995,
				957939114,
				64814326,
				933376898,
				329837066,
				338121343,
				765215899,
				869630152,
				978119194,
				632627667,
				975266085,
				435887178,
				282092463,
				129621197,
				758245605,
				827722926,
				201339230,
				918513230,
				322096036,
				547838438,
				985546115,
				852304035,
				593090119,
				689189630,
				555842733,
				567033437,
				469928208,
				212842957,
				117842065,
				404149413,
				155133422,
				663307737,
				208761293,
				206282795,
				717946122,
				488906585,
				414236650,
				280700600,
				962670136,
				534279149,
				214569244,
				375297772,
				811053196,
				922377372,
				289594327,
				219932130,
				211487466,
				701050258,
				398782410,
				863002719,
				27236531,
				217598709,
				375472836,
				810551911,
				178598958,
				247844667,
				676526196,
				812283640,
				863066876,
				857241854,
				113917835,
				624148346,
				726089763,
				564827277,
				826300950,
				478982047,
				439411911,
				454039189,
				633292726,
				48562889,
				802100365,
				671734977,
				945204804,
				508831870,
				398781902,
				897162044,
				644050694,
				892168027,
				828883117,
				277714559,
				713448377,
				624500515,
				590098114,
				808691930,
				514359662,
				895205045,
				715264908,
				628829100,
				484492064,
				919717789,
				513196123,
				748510389,
				403652653,
				574455974,
				77123823,
				172096141,
				819801784,
				581418893,
				15655126,
				15391652,
				875641535,
				203191898,
				264582598,
				880691101,
				907800444,
				986598821,
				340030191,
				264688936,
				369832433,
				785804644,
				842065079,
				423951674,
				663560047,
				696623384,
				496709826,
				161960209,
				331910086,
				541120825,
				951524114,
				841656666,
				162683802,
				629786193,
				190395535,
				269571439,
				832671304,
				76770272,
				341080135,
				421943723,
				494210290,
				751040886,
				317076664,
				672850561,
				72482816,
				493689107,
				135625240,
				100228913,
				684748812,
				639655136,
				906233141,
				929893103,
				277813439,
				814362881,
				562608724,
				406024012,
				885537778,
				10065330,
				60625018,
				983737173,
				60517502,
				551060742,
				804930491,
				823845496,
				727416538,
				946421040,
				678171399,
				842203531,
				175638827,
				894247956,
				538609927,
				885362182,
				946464959,
				116667533,
				749816133,
				241427979,
				871117927,
				281804989,
				163928347,
				563796647,
				640266394,
				774625892,
				59342705,
				256473217,
				674115061,
				918860977,
				322633051,
				753513874,
				393556719,
				304644842,
				767372800,
				161362528,
				754787150,
				627655552,
				677395736,
				799289297,
				846650652,
				816701166,
				687265514,
				787113234,
				358757251,
				701220427,
				607715125,
				245795606,
				600624983,
				10475577,
				728620948,
				759404319,
				36292292,
				491466901,
				22556579,
				114495791,
				647630109,
				586445753,
				482254337,
				718623833,
				763514207,
				66547751,
				953634340,
				351472920,
				308474522,
				494166907,
				634359666,
				172114298,
				865440961,
				364380585,
				921648059,
				965683742,
				260466949,
				117483873,
				962540888,
				237120480,
				620531822,
				193781724,
				213092254,
				107141741,
				602742426,
				793307102,
				756154604,
				236455213,
				362928234,
				14162538,
				753042874,
				778983779,
				25977209,
				49389215,
				698308420,
				859637374,
				49031023,
				713258160,
				737331920,
				923333660,
				804861409,
				83868974,
				682873215,
				217298111,
				883278906,
				176966527,
				954913,
				105359006,
				390019735,
				10430738,
				706334445,
				315103615,
				567473423,
				708233401,
				48160594,
				946149627,
				346966053,
				281329488,
				462880311,
				31503476,
				185438078,
				965785236,
				992656683,
				916291845,
				881482632,
				899946391,
				321900901,
				512634493,
				303338827,
				121000338,
				967284733,
				492741665,
				152233223,
				165393390,
				680128316,
				917041303,
				532702135,
				741626808,
				496442755,
				536841269,
				131384366,
				377329025,
				301196854,
				859917803,
				676511002,
				373451745,
				847645126,
				823495900,
				576368335,
				73146164,
				954958912,
				847549272,
				241289571,
				646654592,
				216046746,
				205951465,
				3258987,
				780882948,
				822439091,
				598245292,
				869544707,
				698611116,
		};

		long n = sc.nextLong();

		if (n >= MOD) {
			pr.println(0);
		} else {
			long ret = fact[(int)(n / 1_000_000)];

			for (long i = n / 1_000_000 * 1_000_000 + 1; i <= n; i++) {
				ret *= i;
				ret %= MOD;
			}

			pr.println(ret);
		}
	}

	private static final int MOD = 1_000_000_007;

	// ---------------------------------------------------
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		pr = new Printer(System.out);

		solve();

		pr.close();
		sc.close();
	}

	private static class Printer extends PrintWriter {
		Printer(PrintStream out) {
			super(out);
		}
	}
}
0