Problem Statement
Consider a sequence f which satisfies,
- f(1) = 1.
- &Sigmad|n f(d) * f(n / d) = 1 for n > 1.
Definition
- Class:
- CountingToOne
- Method:
- calculate
- Parameters:
- long
- Returns:
- int
- Method signature:
- int calculate(long n)
- (be sure your method is public)
Constraints
- The value of N ranges from 1 to 1014 inclusive.
Examples
1
Returns: 1
f(1) = 1 by definition.
2
Returns: 500000004
For n = 2, f(1) * f(2)+f(2) * f(1) = 1. So f(2) = 1 / 2. (1 * 2-1) = 500000004 mod 109 + 7.
4
Returns: 375000003
For n = 4, f(1) * f(4) + f(2) * f(2) + f(4) * f(1) = 1. Also we know the values of f(1) = 1 and f(2) = 1/2. So f(4) = 3 / 8. (3 * 8-1) = 375000003 mod 109 + 7.
1000000000000
Returns: 224797743
1401653119
Returns: 500000004
341860583893
Returns: 500000004
54442422241
Returns: 375000003
999536628599
Returns: 500000004
998889968795
Returns: 250000002
999538264185
Returns: 562500004
999411956885
Returns: 125000001
999857040823
Returns: 250000002
562987333
Returns: 250000002
997863694481
Returns: 125000001
998767396481
Returns: 250000002
1684951201
Returns: 500000004
1321196369
Returns: 125000001
982450929
Returns: 250000002
1355038273
Returns: 250000002
999667259274
Returns: 562500004
1892241411
Returns: 562500004
1872020353
Returns: 421875003
999372830273
Returns: 562500004
998840896457
Returns: 125000001
999919052957
Returns: 125000001
999172533589
Returns: 125000001
999970140849
Returns: 562500004
1461529391
Returns: 562500004
998862398399
Returns: 500000004
998369247875
Returns: 703125005
998632142082
Returns: 421875003
1545160705
Returns: 562500004
999739053153
Returns: 703125005
459932209
Returns: 125000001
999509896372
Returns: 843750006
999129112971
Returns: 281250002
999192399363
Returns: 421875003
999721327333
Returns: 125000001
999662909441
Returns: 281250002
135337941
Returns: 687500005
999199853839
Returns: 562500004
182195157
Returns: 250000002
767343507
Returns: 125000001
999863230729
Returns: 125000001
999998736213
Returns: 125000001
998492710015
Returns: 562500004
65214507758400
Returns: 628571321
55898149507200
Returns: 97618927
93163582512000
Returns: 759637078
97821761637600
Returns: 463636260
97821761637600
Returns: 463636260
93163582512000
Returns: 759637078
65214507758400
Returns: 628571321
48910880818800
Returns: 515151400
55898149507200
Returns: 97618927
46581791256000
Returns: 587301467
32607253879200
Returns: 958441443
27949074753600
Returns: 566666540
26985313555200
Returns: 981026622
18632716502400
Returns: 111564488
13492656777600
Returns: 646428394
777600000
Returns: 242023538
100000000000000
Returns: 801213761
100000004107
Returns: 500000004
100
Returns: 265625002