Problem Statement
You are playing the funny game "Guess the number" with a friend. In this game, one of the players chooses a positive integer and the other has to guess it by using the clues that are revealed. The i-th clue is either "Y" or "N" indicating whether the hidden number is a multiple of i or not, respectively. For instance, if the clues so far are "YYNYY" it means that the number is a multiple of 1, 2, 4 and 5, but it is not a multiple of 3.
Note that some sequences of clues are invalid. For instance, the sequence "NYYY" is invalid because all integers are multiples of 1, and therefore the starting element cannot be an "N". Also, a sequence like "YNNY" is invalid because the answer cannot be a multiple of 4, but not a multiple of 2.
You will be given an
Definition
- Class:
- GuessTheNumberGame
- Method:
- possibleClues
- Parameters:
- int
- Returns:
- int
- Method signature:
- int possibleClues(int n)
- (be sure your method is public)
Notes
- Returning the answer modulo 1000000007 means returning the remainder of dividing the answer by 1000000007.
Constraints
- n will be between 1 and 1000000 (10^6), inclusive.
Examples
5
Returns: 12
The possible clues are: YNNNN YNNNY YNYNN YNYNY YYNNN YYNNY YYNYN YYNYY YYYNN YYYNY YYYYN YYYYY
16
Returns: 240
1
Returns: 1
1000000
Returns: 677298706
2
Returns: 2
3
Returns: 4
4
Returns: 6
6
Returns: 12
7
Returns: 24
8
Returns: 32
9
Returns: 48
10
Returns: 48
999999
Returns: 677298706
999998
Returns: 677298706
999997
Returns: 677298706
999996
Returns: 677298706
999995
Returns: 677298706
4
Returns: 6
5
Returns: 12
3
Returns: 4
262143
Returns: 439797190
262145
Returns: 686452591
2049
Returns: 259455152
2047
Returns: 571167225
257
Returns: 371222849
16
Returns: 240
7
Returns: 24
512
Returns: 165346969
127
Returns: 557168052
16383
Returns: 376000874
9
Returns: 48
10
Returns: 48
8
Returns: 32
19682
Returns: 107872579
27
Returns: 3840
19684
Returns: 230969533
28
Returns: 3840
59050
Returns: 861627307
6562
Returns: 170878868
81
Returns: 82575360
2188
Returns: 698159760
82
Returns: 82575360
244
Returns: 526938414
25
Returns: 2880
26
Returns: 2880
24
Returns: 1920
15624
Returns: 323319333
390625
Returns: 69849809
626
Returns: 670816995
125
Returns: 278584026
78126
Returns: 894717118
15625
Returns: 877205892
124
Returns: 708938023
3125
Returns: 907367095
126
Returns: 278584026
390624
Returns: 173199831
49
Returns: 442368
50
Returns: 442368
48
Returns: 294912
343
Returns: 115115442
2401
Returns: 245747346
16806
Returns: 45017159
117648
Returns: 915846756
2400
Returns: 796597881
16807
Returns: 654020595
823542
Returns: 769520726
823543
Returns: 165166539
117650
Returns: 68487875
16808
Returns: 654020595
997
Returns: 376725361
998
Returns: 376725361
996
Returns: 688362684
994009
Returns: 536153558
994010
Returns: 536153558
994008
Returns: 690769041
1009
Returns: 753450722
1010
Returns: 753450722
1008
Returns: 376725361
1613
Returns: 706533350
1614
Returns: 706533350
1612
Returns: 353266675
99133
Returns: 261848332
99134
Returns: 261848332
99132
Returns: 130924166
77591
Returns: 144806995
77592
Returns: 144806995
77590
Returns: 572403501
41221
Returns: 421018372
41222
Returns: 421018372
41220
Returns: 210509186
18397
Returns: 827768751
18398
Returns: 827768751
18396
Returns: 913884379
130
Returns: 636763488
195
Returns: 549685776
172
Returns: 517177684
1060
Returns: 571721834
1690
Returns: 308804503
1551
Returns: 73587175
106318
Returns: 895355768
124846
Returns: 890587993
155100
Returns: 875286419
510510
Returns: 119256192
99999
Returns: 456269783
571787
Returns: 281355041
128
Returns: 636763488
141421
Returns: 365627645