Problem Statement
A multifactorial of a number is a generalization of the factorial function. The k-multifactorial of n is denoted by fack(n). The k-multifactorial of n is the product of every positive number of the form n - X*k, where X is a non-negative integer. For example, the 3-multifactorial of 14 is 14*11*8*5*2 = 12320, and the 4-multifactorial of 5 is 5*1 = 5.
A formal definition of multifactorial is:
- fack(n) = n if k >= n
- fack(n) = n*fack(n-k) if k < n
You will be given n and k and have to return the value of fack(n) as a
Definition
- Class:
- Multifactorial
- Method:
- calcMultiFact
- Parameters:
- int, int
- Returns:
- String
- Method signature:
- String calcMultiFact(int n, int k)
- (be sure your method is public)
Notes
- 1000000000000000000 (1018) fits in a long.
Constraints
- n and k will each be between 1 and 2000000000 (2*109), inclusive.
Examples
14
3
Returns: "12320"
The first example in the problem statement.
5
4
Returns: "5"
The second example in the problem statement.
1000
2
Returns: "overflow"
Way too big!
2000000000
1900000000
Returns: "200000000000000000"
1000
256
Returns: "84232704000"
1
2000000000
Returns: "1"
2000000000
1
Returns: "overflow"
999999999
2452342
Returns: "overflow"
20
1
Returns: "overflow"
21
1
Returns: "overflow"
500000000
300000000
Returns: "100000000000000000"
346534522
234523499
Returns: "38815686314036006"
1
1
Returns: "1"
1000000000
500000000
Returns: "500000000000000000"
1000000000
499999999
Returns: "overflow"
999999998
499999998
Returns: "999999998000000000"
2000000000
1500000000
Returns: "1000000000000000000"
1500000000
749999996
Returns: "overflow"
1500000000
749999995
Returns: "overflow"
2000000000
1000000000
Returns: "overflow"
19
1
Returns: "121645100408832000"
7096
1665
Returns: "132949364877520576"
1403
240
Returns: "92503795940503129"
580
89
Returns: "49844758346611200"
2883
650
Returns: "2690805827660643"
6765
1565
Returns: "133671026560500000"
789
122
Returns: "372592483175247615"
5740
1053
Returns: "overflow"
2032
299
Returns: "overflow"
9081
1711
Returns: "overflow"
2471
441
Returns: "overflow"
1299
182
Returns: "overflow"
788
106
Returns: "overflow"
44346642
27276775
Returns: "756991280836614"
514509426
456665009
Returns: "29761497787974642"
551970908
468308461
Returns: "46179236836091876"
58169460
29439230
Returns: "1671221964775800"
553651008
357920486
Returns: "108366400801666176"
71623417
27276775
Returns: "overflow"
971174435
456665009
Returns: "overflow"
1020279369
468308461
Returns: "overflow"
87608690
29439230
Returns: "overflow"
911571494
357920486
Returns: "overflow"
470471467
383653989
Returns: "40845146235900226"
1321684950
1610906284
Returns: "1321684950"
962668700
1552320299
Returns: "962668700"
1855938358
1589679319
Returns: "494160363644317962"
945693672
1995299534
Returns: "945693672"
1121829815
510036533
Returns: "overflow"
1085488572
398983355
Returns: "overflow"
1587268015
837447602
Returns: "overflow"
423332300
165035639
Returns: "overflow"
1930571740
867298328
Returns: "overflow"
1461315454
531261815
Returns: "overflow"
30
2
Returns: "42849873690624000"
111
11
Returns: "122087424094272000"
53
4
Returns: "885821206052908125"
637
95
Returns: "151534613656153728"
151
16
Returns: "532998118279051425"
338
47
Returns: "36814996368259200"
51
4
Returns: "178311467764705275"
213
25
Returns: "278761477374027648"
231
27
Returns: "642203484132672000"
78
7
Returns: "119715577952256000"
72
6
Returns: "overflow"
260
31
Returns: "overflow"
440
57
Returns: "overflow"
168
16
Returns: "overflow"
287
31
Returns: "overflow"
99
9
Returns: "overflow"
87
7
Returns: "overflow"
20
1
Returns: "overflow"
107
9
Returns: "overflow"
20
1
Returns: "overflow"
96
10
Returns: "9585618768101376"
59
5
Returns: "60705973649857536"
89
8
Returns: "494437513909964625"
89
8
Returns: "494437513909964625"
31
2
Returns: "191898783962510625"
70
6
Returns: "333247405883392000"
97
10
Returns: "13865696119905399"
62
5
Returns: "728640635326636032"
98
9
Returns: "886471860680806400"
78
7
Returns: "119715577952256000"
59
5
Returns: "60705973649857536"
19
1
Returns: "121645100408832000"
89
8
Returns: "494437513909964625"
30
2
Returns: "42849873690624000"
68
6
Returns: "73569236156416000"
74
7
Returns: "17921371792896000"
5
5
Returns: "5"
2000000000
1
Returns: "overflow"
200000000
1
Returns: "overflow"
669266210
185904517
Returns: "overflow"
2000000000
1000000000
Returns: "overflow"
1000000001
499999999
Returns: "overflow"
1000000000
333333333
Returns: "overflow"
200
22
Returns: "overflow"
1000000000
400000000
Returns: "overflow"
3
3
Returns: "3"
720
100
Returns: "overflow"
20
1
Returns: "overflow"
2000000000
1500000000
Returns: "1000000000000000000"
19
1
Returns: "121645100408832000"
25000000
9992000
Returns: "overflow"
305
35
Returns: "overflow"
1000000001
500000000
Returns: "500000001500000001"
6000
1000
Returns: "overflow"
4362252
1454084
Returns: "overflow"
1650966
550322
Returns: "overflow"
1000000000
431987941
Returns: "overflow"
100000000
43987949
Returns: "overflow"
110
10
Returns: "overflow"
261871898
100333140
Returns: "overflow"
200000000
43809569
Returns: "overflow"
1999999996
1499999995
Returns: "999999999999999996"
1000
2
Returns: "overflow"
5120
1000
Returns: "overflow"
1500000
499000
Returns: "overflow"
999000000
425636850
Returns: "overflow"
1000000000
425636850
Returns: "overflow"
1
1
Returns: "1"
281
30
Returns: "overflow"
2000000000
1400000000
Returns: "overflow"
2000000000
639514741
Returns: "overflow"
1000000000
386822144
Returns: "overflow"
1000
96
Returns: "overflow"
330000
100000
Returns: "overflow"
1999999999
1500000000
Returns: "999999997500000001"
130
10
Returns: "overflow"
1000000005
499999993
Returns: "overflow"
1000000005
500000000
Returns: "overflow"
999999999
500000001
Returns: "499999997500000002"
4
10
Returns: "4"
100000000
1
Returns: "overflow"
1000000000
460000000
Returns: "overflow"
1804289383
846930886
Returns: "overflow"
1671014630
1066920525
Returns: "overflow"
5
1
Returns: "120"
666
88
Returns: "overflow"
1000000000
499999985
Returns: "overflow"
1999999999
1900000000
Returns: "199999997900000001"
2000000000
1499999999
Returns: "overflow"
31
2
Returns: "191898783962510625"
100000
25000
Returns: "overflow"
33
2
Returns: "overflow"
1000000101
500000000
Returns: "overflow"
100
10
Returns: "36288000000000000"
1000000000
333333300
Returns: "overflow"
2000000000
999999999
Returns: "overflow"
158000000
74000000
Returns: "overflow"
18147702
6049234
Returns: "overflow"
15
1
Returns: "1307674368000"
900000000
300000000
Returns: "overflow"
1000000000
390000000
Returns: "overflow"
262144
65536
Returns: "overflow"
32
2
Returns: "overflow"
10
10
Returns: "10"
120000000
40000000
Returns: "overflow"
1000000002
500000000
Returns: "overflow"
10000000
3333333
Returns: "overflow"
16
4
Returns: "6144"
14
14
Returns: "14"
10000
2
Returns: "overflow"
100
100
Returns: "100"
2000000000
1000000001
Returns: "overflow"
2000000
700000
Returns: "overflow"
42
2
Returns: "overflow"
2
1
Returns: "2"
9
3
Returns: "162"
8
1
Returns: "40320"
43
3
Returns: "overflow"
2000000000
100000005
Returns: "overflow"
6
3
Returns: "18"
10
1
Returns: "3628800"