TopcoderArchiveVisit Topcoder
SRM1 Oct 2008
SRM 420

PrettyPrintingProduct

Problem statement, definition, constraints, and public examples.

Problem Statement

You will be given two positive ints A and B.

Let C be the product of all integers between A and B, inclusive.

The number C has a unique representation of the form C = D * 10^E, where D and E are non-negative integers and the last digit of D is non-zero.

Write a method that will return the value of C formatted as a String of the form "D * 10^E" (quotes for clarity only). Substitute the actual values of D and E into the output. If D has more than 10 digits, only output the first five and the last five digits of D, and separate them by three periods.

Definition

Class:
PrettyPrintingProduct
Method:
prettyPrint
Parameters:
int, int
Returns:
String
Method signature:
String prettyPrint(int A, int B)
(be sure your method is public)

Notes

  • The purpose of the last constraint is to disallow inputs where precision problems could arise.

Constraints

  • A will be between 1 and 1,000,000, inclusive.
  • B will be between A and 1,000,000, inclusive.
  • If C has more than 10 digits, then the sixth most significant digit of C will be neither 0 nor 9.

Examples

  1. 1
    10
    Returns: "36288 * 10^2"
    1 * 2 * ... * 10 = 3628800 = 36288 * 10^2
  2. 7
    7
    Returns: "7 * 10^0"
    The product of all numbers between 7 and 7, inclusive, is obviously 7.
  3. 211
    214
    Returns: "2038974024 * 10^0"
    For this input D has 10 digits.
  4. 411
    414
    Returns: "28952...24024 * 10^0"
    For this input D has 11 digits. Note that we output three dots even if just one digit is missing in the output.
  5. 412
    415
    Returns: "2923450236 * 10^1"
    The actual value of C is larger than in the previous example. However, C ends in a zero and therefore D only has 10 digits.
  6. 47
    4700
    Returns: "14806...28928 * 10^1163"
  7. 1
    19
    Returns: "12164...08832 * 10^3"
    Note that the last five digits of D can start with a zero.
  8. 13
    25
    Returns: "32382...26624 * 10^4"
Back to all problems