Statistics

Problem Statement for "LockersDivTwo"

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:
LockersDivTwo
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 10000, inclusive.

Examples

  1. 9

    Returns: 6

    The example from the problem statement.

  2. 42

    Returns: 42

  3. 314

    Returns: 282

  4. 10000

    Returns: 9894

  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. 77

    Returns: 60

  20. 101

    Returns: 82

  21. 239

    Returns: 214

  22. 321

    Returns: 282

  23. 497

    Returns: 454

  24. 717

    Returns: 672

  25. 779

    Returns: 732

  26. 989

    Returns: 930

  27. 1277

    Returns: 1212

  28. 1631

    Returns: 1558

  29. 2039

    Returns: 1932

  30. 3053

    Returns: 2940

  31. 3233

    Returns: 3102

  32. 3971

    Returns: 3814

  33. 5231

    Returns: 5014

  34. 6833

    Returns: 6534

  35. 34

    Returns: 34

  36. 132

    Returns: 132

  37. 282

    Returns: 282

  38. 510

    Returns: 510

  39. 802

    Returns: 802

  40. 1174

    Returns: 1174

  41. 1558

    Returns: 1558

  42. 2058

    Returns: 2058

  43. 2602

    Returns: 2602

  44. 3234

    Returns: 3234

  45. 3814

    Returns: 3814

  46. 4582

    Returns: 4582

  47. 5398

    Returns: 5398

  48. 6318

    Returns: 6318

  49. 7114

    Returns: 7114

  50. 8160

    Returns: 8160

  51. 9192

    Returns: 9192

  52. 4709

    Returns: 4582

  53. 1032

    Returns: 1002

  54. 7735

    Returns: 7714

  55. 9639

    Returns: 9618

  56. 1773

    Returns: 1770

  57. 7347

    Returns: 7272

  58. 6708

    Returns: 6534

  59. 2999

    Returns: 2940

  60. 985

    Returns: 930

  61. 5150

    Returns: 5014

  62. 8792

    Returns: 8760

  63. 8986

    Returns: 8910

  64. 4646

    Returns: 4582

  65. 9433

    Returns: 9192

  66. 1592

    Returns: 1558

  67. 8282

    Returns: 8160

  68. 2939

    Returns: 2922

  69. 9062

    Returns: 9012

  70. 567

    Returns: 540

  71. 159

    Returns: 154

  72. 569

    Returns: 540

  73. 9170

    Returns: 9118

  74. 9685

    Returns: 9618

  75. 4609

    Returns: 4582

  76. 4583

    Returns: 4582

  77. 6472

    Returns: 6432

  78. 6452

    Returns: 6432

  79. 8995

    Returns: 8910

  80. 5231

    Returns: 5014

  81. 2032

    Returns: 1932

  82. 7807

    Returns: 7800

  83. 5052

    Returns: 5014

  84. 9016

    Returns: 9012

  85. 7709

    Returns: 7558

  86. 455

    Returns: 454

  87. 7174

    Returns: 7114

  88. 4027

    Returns: 4018

  89. 3274

    Returns: 3234

  90. 3236

    Returns: 3234

  91. 2523

    Returns: 2494

  92. 3213

    Returns: 3102

  93. 9999

    Returns: 9894

  94. 36

    Returns: 34

  95. 1893

    Returns: 1882

  96. 9876

    Returns: 9840

  97. 9998

    Returns: 9894

  98. 1000

    Returns: 990

  99. 7777

    Returns: 7714

  100. 420

    Returns: 418

  101. 9997

    Returns: 9894

  102. 600

    Returns: 570

  103. 125

    Returns: 118

  104. 7172

    Returns: 7114

  105. 2736

    Returns: 2718

  106. 9898

    Returns: 9894


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: