Statistics

Problem Statement for "LockersDivOne"

Problem Statement

A hallway is filled with lockers numbered 1 through N, initially all closed. Out of boredom, Dave and Earl decide to open all the lockers. They make multiple passes through the hallway, each beginning at locker 1. On the first pass, they open the first unopened locker, and every second unopened locker thereafter. On the second pass, they open the first unopened locker, and every third unopened locker thereafter. In general, on the nth pass, they open the first unopened locker, and every (n+1)th unopened locker thereafter.

For example, with 9 lockers, on the first pass they open 1, 3, 5, 7, and 9, leaving 2, 4, 6, and 8. On the second pass they open 2 and 8, leaving 4 and 6. On the third pass they open locker 4, and on the final pass locker 6.

You will be given N, the number of lockers. Return the number of the locker opened last.

Definition

Class:
LockersDivOne
Method:
lastOpened
Parameters:
int
Returns:
int
Method signature:
int lastOpened(int N)
(be sure your method is public)

Constraints

  • N will be between 1 and 2000000, inclusive.

Examples

  1. 9

    Returns: 6

    The example from the problem statement.

  2. 42

    Returns: 42

  3. 314

    Returns: 282

  4. 2000000

    Returns: 1999854

  5. 1

    Returns: 1

  6. 2

    Returns: 2

  7. 3

    Returns: 2

  8. 4

    Returns: 4

  9. 5

    Returns: 4

  10. 6

    Returns: 6

  11. 7

    Returns: 6

  12. 8

    Returns: 6

  13. 10

    Returns: 10

  14. 11

    Returns: 10

  15. 12

    Returns: 12

  16. 17

    Returns: 12

  17. 29

    Returns: 22

  18. 57

    Returns: 48

  19. 101

    Returns: 82

  20. 321

    Returns: 282

  21. 717

    Returns: 672

  22. 989

    Returns: 930

  23. 1631

    Returns: 1558

  24. 3053

    Returns: 2940

  25. 3971

    Returns: 3814

  26. 6833

    Returns: 6534

  27. 25739

    Returns: 25198

  28. 74021

    Returns: 73272

  29. 94277

    Returns: 93274

  30. 118679

    Returns: 117552

  31. 199661

    Returns: 197988

  32. 345993

    Returns: 343920

  33. 460181

    Returns: 457798

  34. 735561

    Returns: 732612

  35. 765317

    Returns: 762090

  36. 833267

    Returns: 828048

  37. 802

    Returns: 802

  38. 7114

    Returns: 7114

  39. 19872

    Returns: 19872

  40. 39018

    Returns: 39018

  41. 64632

    Returns: 64632

  42. 96312

    Returns: 96312

  43. 134898

    Returns: 134898

  44. 179062

    Returns: 179062

  45. 230532

    Returns: 230532

  46. 286974

    Returns: 286974

  47. 351210

    Returns: 351210

  48. 420942

    Returns: 420942

  49. 497958

    Returns: 497958

  50. 580218

    Returns: 580218

  51. 669874

    Returns: 669874

  52. 765322

    Returns: 765322

  53. 866842

    Returns: 866842

  54. 975678

    Returns: 975678

  55. 1088970

    Returns: 1088970

  56. 1210102

    Returns: 1210102

  57. 1338958

    Returns: 1338958

  58. 1471258

    Returns: 1471258

  59. 1611898

    Returns: 1611898

  60. 1757172

    Returns: 1757172

  61. 1912002

    Returns: 1912002

  62. 1991418

    Returns: 1991418

  63. 1875321

    Returns: 1871958

  64. 1920904

    Returns: 1919502

  65. 1896379

    Returns: 1894428

  66. 1244146

    Returns: 1242828

  67. 454224

    Returns: 453102

  68. 1167427

    Returns: 1167270

  69. 528500

    Returns: 526618

  70. 1333468

    Returns: 1330978

  71. 422925

    Returns: 422602

  72. 1644440

    Returns: 1642932

  73. 256900

    Returns: 256788

  74. 809308

    Returns: 809280

  75. 1033672

    Returns: 1032658

  76. 39409

    Returns: 39300

  77. 1865925

    Returns: 1864470

  78. 72827

    Returns: 72718

  79. 1793954

    Returns: 1792512

  80. 22458

    Returns: 22278

  81. 1368982

    Returns: 1368960

  82. 255031

    Returns: 254434

  83. 275027

    Returns: 274174

  84. 23537

    Returns: 23502

  85. 1280635

    Returns: 1280352

  86. 981867

    Returns: 981690

  87. 1806794

    Returns: 1806132

  88. 70235

    Returns: 70174

  89. 1378524

    Returns: 1378188

  90. 1860626

    Returns: 1859338

  91. 670982

    Returns: 670758

  92. 1482497

    Returns: 1481052

  93. 423800

    Returns: 422602

  94. 1520612

    Returns: 1518798

  95. 1638684

    Returns: 1637982

  96. 1958076

    Returns: 1956238

  97. 11386

    Returns: 11302

  98. 1345687

    Returns: 1345462

  99. 974465

    Returns: 972108

  100. 56151

    Returns: 56010

  101. 1500836

    Returns: 1499262

  102. 784431

    Returns: 784200

  103. 1705022

    Returns: 1702080

  104. 1240589

    Returns: 1240572

  105. 1768731

    Returns: 1767222

  106. 964835

    Returns: 963798

  107. 1792140

    Returns: 1790982

  108. 1906351

    Returns: 1903462

  109. 889195

    Returns: 888330

  110. 1768921

    Returns: 1767222

  111. 1121613

    Returns: 1120368

  112. 1556163

    Returns: 1555558

  113. 1979797

    Returns: 1976482

  114. 1999999

    Returns: 1999854

  115. 1999854

    Returns: 1999854

  116. 1876437

    Returns: 1875588

  117. 134567

    Returns: 133702

  118. 1234561

    Returns: 1232448

  119. 619931

    Returns: 619902

  120. 1999123

    Returns: 1998852

  121. 1999923

    Returns: 1999854

  122. 1999853

    Returns: 1998852

  123. 18468

    Returns: 18414

  124. 1987567

    Returns: 1985988

  125. 55

    Returns: 48

  126. 100

    Returns: 82


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: