Statistics

Problem Statement for "CalcRoot"

Problem Statement

You are developing a new calculator with a square root function. To make things simple for your clients, you have decided to approximate square roots as simple fractions, rather than displaying a long sequence of digits.

You will be given N and D and should return the fraction closest to sqrt(N) for which the denominator is not greater than D. The fraction should be returned in the form "A/B" where A and B are positive integers with no common factors greater than one.

Definition

Class:
CalcRoot
Method:
approximate
Parameters:
int, int
Returns:
String
Method signature:
String approximate(int N, int D)
(be sure your method is public)

Constraints

  • N will be between 1 and 1000000, inclusive.
  • D will be between 1 and 1000, inclusive.

Examples

  1. 4

    10

    Returns: "2/1"

  2. 5

    3

    Returns: "7/3"

    sqrt(5) = 2.236

  3. 12

    10

    Returns: "31/9"

    sqrt(12) = 3.464

  4. 23743

    763

    Returns: "98462/639"

  5. 991746

    903

    Returns: "837522/841"

  6. 69

    5

    Returns: "25/3"

  7. 29

    32

    Returns: "70/13"

  8. 53

    1

    Returns: "7/1"

  9. 73

    61

    Returns: "487/57"

  10. 21

    1

    Returns: "5/1"

  11. 41

    81

    Returns: "397/62"

  12. 17

    25

    Returns: "33/8"

  13. 65

    7

    Returns: "8/1"

  14. 46

    47

    Returns: "156/23"

  15. 622311

    92

    Returns: "11833/15"

  16. 264041

    50

    Returns: "16957/33"

  17. 756386

    81

    Returns: "38267/44"

  18. 426901

    1

    Returns: "653/1"

  19. 426901

    13

    Returns: "5227/8"

  20. 267545

    68

    Returns: "33621/65"

  21. 267545

    68

    Returns: "33621/65"

  22. 407369

    15

    Returns: "2553/4"

  23. 407369

    19

    Returns: "2553/4"

  24. 330966

    93

    Returns: "15533/27"

  25. 630297

    511

    Returns: "299305/377"

  26. 845032

    412

    Returns: "369541/402"

  27. 844899

    763

    Returns: "649863/707"

  28. 987955

    551

    Returns: "268369/270"

  29. 30230

    123

    Returns: "21038/121"

  30. 30230

    123

    Returns: "21038/121"

  31. 831401

    705

    Returns: "504232/553"

  32. 822089

    958

    Returns: "651911/719"

  33. 802089

    958

    Returns: "836485/934"

  34. 306283

    374

    Returns: "3874/7"

  35. 852501

    187

    Returns: "169889/184"

  36. 852301

    187

    Returns: "123709/134"

  37. 679471

    361

    Returns: "266249/323"

  38. 409096

    787

    Returns: "292300/457"

  39. 677285

    297

    Returns: "153896/187"

  40. 673283

    297

    Returns: "236315/288"

  41. 513729

    826

    Returns: "493840/689"

  42. 864738

    810

    Returns: "555158/597"

  43. 893057

    725

    Returns: "670017/709"

  44. 405537

    11

    Returns: "7005/11"

  45. 923273

    1000

    Returns: "29787/31"

  46. 911323

    1000

    Returns: "371352/389"

  47. 964997

    1000

    Returns: "564847/575"

  48. 932436

    1000

    Returns: "588067/609"

  49. 971073

    1000

    Returns: "707539/718"

  50. 963341

    1000

    Returns: "770477/785"

  51. 943089

    1000

    Returns: "585590/603"

  52. 959967

    1000

    Returns: "851428/869"

  53. 958146

    1000

    Returns: "948505/969"

  54. 927561

    1000

    Returns: "608679/632"

  55. 927561

    1000

    Returns: "608679/632"

  56. 938401

    1000

    Returns: "968711/1000"

  57. 942491

    1000

    Returns: "560163/577"

  58. 917827

    1000

    Returns: "844985/882"

  59. 950896

    1000

    Returns: "357876/367"

  60. 923141

    1000

    Returns: "592815/617"

  61. 938598

    1000

    Returns: "687857/710"

  62. 945350

    1000

    Returns: "798251/821"

  63. 915881

    1000

    Returns: "915865/957"

  64. 990329

    1000

    Returns: "560271/563"

  65. 1

    1

    Returns: "1/1"

  66. 2

    1

    Returns: "1/1"

  67. 1

    2

    Returns: "1/1"

  68. 2

    1000

    Returns: "1393/985"

  69. 999993

    1000

    Returns: "856997/857"

  70. 998001

    1000

    Returns: "999/1"

  71. 998000

    1000

    Returns: "998999/1000"

  72. 998002

    1000

    Returns: "999001/1000"

  73. 671348

    1000

    Returns: "667777/815"

  74. 234728

    1000

    Returns: "210752/435"

  75. 896649

    1000

    Returns: "549211/580"

  76. 872865

    1000

    Returns: "895033/958"

  77. 105462

    1000

    Returns: "280908/865"

  78. 117609

    1000

    Returns: "158782/463"

  79. 161840

    1000

    Returns: "238560/593"

  80. 767095

    1000

    Returns: "606081/692"

  81. 894579

    1000

    Returns: "233618/247"

  82. 468639

    1000

    Returns: "279990/409"

  83. 499455

    1000

    Returns: "677039/958"

  84. 771858

    1000

    Returns: "459484/523"

  85. 102134

    776

    Returns: "172895/541"

  86. 382098

    938

    Returns: "505021/817"

  87. 24806

    789

    Returns: "99067/629"

  88. 931221

    522

    Returns: "465129/482"

  89. 362520

    956

    Returns: "443745/737"

  90. 470436

    829

    Returns: "317564/463"

  91. 798602

    554

    Returns: "488824/547"

  92. 718484

    369

    Returns: "305996/361"

  93. 736680

    564

    Returns: "402543/469"

  94. 131689

    616

    Returns: "134995/372"

  95. 656496

    948

    Returns: "470752/581"

  96. 138067

    857

    Returns: "259730/699"

  97. 923780

    659

    Returns: "592059/616"

  98. 983580

    914

    Returns: "906465/914"

  99. 57840

    963

    Returns: "231120/961"

  100. 953235

    871

    Returns: "850390/871"

  101. 951698

    998

    Returns: "973599/998"

  102. 949181

    706

    Returns: "661522/679"

  103. 945035

    883

    Returns: "858390/883"

  104. 206654

    711

    Returns: "323215/711"

  105. 996183

    959

    Returns: "367297/368"

  106. 991746

    841

    Returns: "837522/841"

  107. 987222

    608

    Returns: "499776/503"

  108. 11745

    1000

    Returns: "62532/577"

  109. 15770

    1000

    Returns: "91798/731"

  110. 40602

    1000

    Returns: "162207/805"

  111. 150290

    1000

    Returns: "264005/681"

  112. 193857

    1000

    Returns: "131207/298"

  113. 218378

    1000

    Returns: "376184/805"

  114. 87

    83

    Returns: "513/55"

  115. 23743

    763

    Returns: "98462/639"

  116. 991746

    903

    Returns: "837522/841"

  117. 999999

    1000

    Returns: "999999/1000"

  118. 536538

    923

    Returns: "676086/923"

  119. 1

    1

    Returns: "1/1"

  120. 990021

    498

    Returns: "494514/497"

  121. 980002

    999

    Returns: "980051/990"

  122. 999999

    1

    Returns: "1000/1"

  123. 593021

    982

    Returns: "686140/891"

  124. 998634

    1000

    Returns: "864409/865"


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: