Statistics

Problem Statement for "Prank"

Problem Statement

Jane tries her best to stay fit. Knowing this, her sister decided to play a prank on Jane: after Jane's old scale broke down, her sister got her a new scale that shows the square of a person's weight, instead of the real weight.

Not noticing the change, Jane has been using the scale for a while. One morning she screamed "Oh no! I gained apparentGain pounds!". Given an int apparentGain (the difference between the square of Jane's current weight and the square of her previous weight), return a int[] containing Jane's possible real weights after the latest measurement, sorted in ascending order.

All weights (displayed and real, previous and current) are positive integers.

Definition

Class:
Prank
Method:
realWeight
Parameters:
int
Returns:
int[]
Method signature:
int[] realWeight(int apparentGain)
(be sure your method is public)

Constraints

  • apparentGain will be between 1 and 100000, inclusive.

Examples

  1. 233

    Returns: {117 }

    If Jane had previously weighed 116 pounds, the scale would have shown 116^2 = 13456. If she gained 1 pound, the scale would show 117^2 = 13689, for an apparent gain of 13689 - 13456 = 233.

  2. 15

    Returns: {4, 8 }

    Assuming in this example Jane is actually a small animal, she could have gone from 1 to 4 or from 7 to 8.

  3. 1440

    Returns: {38, 39, 42, 46, 49, 53, 66, 77, 94, 123, 182, 361 }

  4. 100000

    Returns: {325, 350, 550, 665, 1025, 1270, 2510, 3133, 5005, 6254, 12502, 25001 }

    This is the largest input.

  5. 93301

    Returns: {3595, 46651 }

    Watch out for overflow!

  6. 3

    Returns: {2 }

  7. 15

    Returns: {4, 8 }

  8. 45

    Returns: {7, 9, 23 }

  9. 96

    Returns: {10, 11, 14, 25 }

  10. 192

    Returns: {14, 16, 19, 26, 49 }

  11. 240

    Returns: {16, 17, 19, 23, 32, 61 }

  12. 480

    Returns: {22, 23, 26, 29, 34, 43, 62, 121 }

  13. 720

    Returns: {27, 28, 29, 36, 41, 49, 63, 92, 181 }

  14. 960

    Returns: {31, 32, 34, 38, 46, 53, 64, 83, 122, 241 }

  15. 1440

    Returns: {38, 39, 42, 46, 49, 53, 66, 77, 94, 123, 182, 361 }

  16. 2880

    Returns: {54, 56, 58, 61, 63, 72, 82, 89, 98, 126, 149, 184, 243, 362, 721 }

  17. 3360

    Returns: {58, 59, 61, 62, 71, 74, 82, 94, 113, 127, 146, 173, 214, 283, 422, 841 }

  18. 5040

    Returns: {71, 72, 73, 81, 83, 88, 99, 104, 117, 136, 149, 187, 216, 257, 319, 423, 632, 1261 }

  19. 6720

    Returns: {82, 83, 86, 88, 94, 101, 104, 121, 127, 134, 152, 178, 218, 247, 286, 341, 424, 563, 842, 1681 }

  20. 10080

    Returns: {101, 102, 103, 106, 107, 114, 118, 129, 141, 146, 158, 183, 194, 222, 262, 289, 323, 367, 426, 509, 634, 843, 1262, 2521 }

  21. 20160

    Returns: {142, 143, 144, 146, 153, 157, 162, 166, 176, 179, 198, 208, 234, 261, 272, 298, 331, 351, 374, 432, 514, 569, 638, 727, 846, 1013, 1264, 1683, 2522, 5041 }

  22. 30240

    Returns: {174, 177, 178, 183, 186, 191, 194, 213, 222, 229, 246, 251, 282, 298, 307, 339, 381, 398, 438, 519, 554, 642, 766, 849, 953, 1087, 1266, 1517, 1894, 2523, 3782, 7561 }

  23. 40320

    Returns: {201, 202, 204, 206, 212, 214, 223, 228, 236, 258, 269, 282, 292, 316, 323, 347, 366, 388, 444, 501, 524, 578, 646, 687, 734, 852, 1018, 1129, 1268, 1447, 1686, 2021, 2524, 3363, 5042, 10081 }

  24. 60480

    Returns: {246, 247, 248, 249, 258, 264, 269, 282, 286, 303, 312, 326, 334, 363, 381, 402, 418, 456, 467, 534, 568, 587, 654, 741, 776, 858, 961, 1023, 1094, 1272, 1522, 1689, 1898, 2167, 2526, 3029, 3784, 5043, 7562, 15121 }

  25. 80640

    Returns: {284, 286, 288, 292, 297, 306, 314, 324, 332, 352, 358, 379, 383, 396, 416, 468, 493, 522, 544, 596, 611, 662, 702, 748, 864, 981, 1028, 1138, 1276, 1359, 1454, 1692, 2026, 2249, 2528, 2887, 3366, 4037, 5044, 6723, 10082, 20161 }

  26. 92681

    Returns: {46341 }

  27. 93725

    Returns: {369, 465, 1887, 2049, 9375, 46863 }

  28. 94455

    Returns: {1072, 3156, 5252, 9448, 15744, 47228 }

  29. 95665

    Returns: {313, 551, 929, 2527, 9569, 47833 }

  30. 96907

    Returns: {48454 }

  31. 97253

    Returns: {3747, 48627 }

  32. 98221

    Returns: {49111 }

  33. 99099

    Returns: {318, 330, 418, 470, 482, 550, 590, 682, 818, 1290, 1518, 2370, 3818, 4510, 5510, 7082, 16518, 49550 }

  34. 99997

    Returns: {319, 2641, 49999 }

  35. 99999

    Returns: {320, 468, 1240, 5560, 16668, 50000 }

  36. 85171

    Returns: {830, 42586 }

  37. 96740

    Returns: {726, 3462, 4842, 24186 }

  38. 10498

    Returns: { }

  39. 648

    Returns: {27, 33, 57, 83, 163 }

  40. 30765

    Returns: {199, 457, 743, 1033, 2201, 3079, 5129, 15383 }

  41. 13469

    Returns: {6735 }

  42. 24342

    Returns: { }

  43. 1594

    Returns: { }

  44. 6271

    Returns: {3136 }

  45. 22640

    Returns: {303, 576, 1137, 1419, 2832, 5661 }

  46. 7356

    Returns: {616, 1840 }

  47. 64420

    Returns: {3226, 16106 }

  48. 83735

    Returns: {8376, 41868 }

  49. 19855

    Returns: {152, 208, 532, 908, 1988, 9928 }

  50. 31292

    Returns: {7824 }

  51. 948

    Returns: {82, 238 }

  52. 20934

    Returns: { }

  53. 9298

    Returns: { }

  54. 79400

    Returns: {447, 819, 1995, 3975, 9927, 19851 }

  55. 87157

    Returns: {6229, 43579 }

  56. 9006

    Returns: { }

  57. 18143

    Returns: {9072 }

  58. 23916

    Returns: {1996, 5980 }

  59. 94926

    Returns: { }

  60. 98318

    Returns: { }

  61. 16

    Returns: {5 }

  62. 10000

    Returns: {125, 145, 260, 505, 629, 1252, 2501 }

  63. 99994

    Returns: { }

  64. 50000

    Returns: {225, 300, 525, 645, 1260, 2505, 3129, 6252, 12501 }

  65. 93303

    Returns: {772, 2232, 5188, 6668, 15552, 46652 }

  66. 96001

    Returns: {48001 }

  67. 1

    Returns: { }

  68. 2168

    Returns: {273, 543 }

  69. 94005

    Returns: {1067, 3141, 5227, 9403, 15669, 47003 }


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: