Statistics

Problem Statement for "BigFibonacci"

Problem Statement

Depicted below is the Fibonacci sequence:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

As you can see, each value from 2 on is the sum of the previous two values. Given the 0-based index of a Fibonacci number and an int M, return the index-th Fibonacci number modulo M.

Definition

Class:
BigFibonacci
Method:
fibNumber
Parameters:
String, int
Returns:
int
Method signature:
int fibNumber(String index, int M)
(be sure your method is public)

Constraints

  • index will be an integer between 0 and 1015, inclusive, with no extra leading zeroes.
  • M will be between 1 and 1000000 (106).

Examples

  1. "7"

    10

    Returns: 3

  2. "5"

    1

    Returns: 0

  3. "0"

    23

    Returns: 0

  4. "123"

    100

    Returns: 82

  5. "12121212121"

    12121

    Returns: 10510

  6. "3"

    100

    Returns: 2

  7. "6"

    100

    Returns: 8

  8. "17"

    2

    Returns: 1

  9. "47"

    716632

    Returns: 58801

  10. "53"

    114696

    Returns: 84965

  11. "77"

    269040

    Returns: 69317

  12. "54"

    341890

    Returns: 177022

    F54 = 86267571272. 86267571272 % 341890 = 177022.

  13. "54"

    1000000

    Returns: 571272

  14. "1000000000000000"

    1000000

    Returns: 546875

  15. "100"

    987654

    Returns: 667359

    F100 = 354224848179261915075. 354224848179261915075 % 987654 = 667359.

  16. "300"

    2521

    Returns: 0

    F300 = 222232244629420445529739893461909967206666939096499764990979600.

  17. "300"

    400

    Returns: 0

  18. "300"

    77531

    Returns: 0

    F300 = 222232244629420445529739893461909967206666939096499764990979600.

  19. "999999999999999"

    999999

    Returns: 664126

  20. "38501422821537"

    142016

    Returns: 23458

  21. "4690369882923"

    95550

    Returns: 24932

  22. "1405796049886"

    863860

    Returns: 288203

  23. "43431358011135"

    108732

    Returns: 92614

  24. "3579687506406"

    193732

    Returns: 34196

  25. "84751971748679"

    43065

    Returns: 21781

  26. "25752471003162"

    428108

    Returns: 417316

  27. "14580522501859"

    550248

    Returns: 334445

  28. "112944064336649"

    54327

    Returns: 13

  29. "39862375012795"

    96432

    Returns: 41333

  30. "50536356089828"

    5660

    Returns: 2401

  31. "286353786083"

    158675

    Returns: 95372

  32. "114546486085883"

    179101

    Returns: 47354

  33. "1140722218173"

    510645

    Returns: 11348

  34. "3881819593810"

    322525

    Returns: 295030

  35. "24201661874112"

    63945

    Returns: 60669

  36. "165236558789388"

    17135

    Returns: 4376

  37. "21761589328399"

    613172

    Returns: 369937

  38. "144310819996"

    94671

    Returns: 29325

  39. "39776865603136"

    41245

    Returns: 30502

  40. "21147071332414"

    94510

    Returns: 35667

  41. "1251526108233"

    470900

    Returns: 100978

  42. "53092777986780"

    418455

    Returns: 83700

  43. "40282523017461"

    23694

    Returns: 22034

  44. "21609318615795"

    775536

    Returns: 294002

  45. "10335830470752"

    536169

    Returns: 163470

  46. "160355631338975"

    6496

    Returns: 3137

  47. "1922627638022"

    397279

    Returns: 122420

  48. "118242449247186"

    117480

    Returns: 24208

  49. "2479079501303"

    54826

    Returns: 29479

  50. "40"

    495684

    Returns: 223251

  51. "41"

    718925

    Returns: 227391

  52. "42"

    30056

    Returns: 25168

  53. "43"

    95226

    Returns: 25685

  54. "44"

    9460

    Returns: 6493

  55. "45"

    67134

    Returns: 2900

  56. "46"

    115232

    Returns: 89983

  57. "47"

    61625

    Returns: 27323

  58. "48"

    64125

    Returns: 11601

  59. "49"

    227976

    Returns: 200929

  60. "50"

    44144

    Returns: 20033

  61. "51"

    532440

    Returns: 245954

  62. "52"

    275892

    Returns: 119079

  63. "53"

    124558

    Returns: 111179

  64. "54"

    689520

    Returns: 345032

  65. "55"

    676512

    Returns: 494509

  66. "56"

    609861

    Returns: 389865

  67. "57"

    532926

    Returns: 476998

  68. "58"

    251712

    Returns: 139159

  69. "59"

    651963

    Returns: 225617

  70. "60"

    181470

    Returns: 152910


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: