TopCoder problem "PrettyPrintingProduct" used in SRM 420 (Division II Level Three)



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

0)
    
1
10
Returns: "36288 * 10^2"
1 * 2 * ... * 10 = 3628800 = 36288 * 10^2
1)
    
7
7
Returns: "7 * 10^0"
The product of all numbers between 7 and 7, inclusive, is obviously 7.
2)
    
211
214
Returns: "2038974024 * 10^0"
For this input D has 10 digits.
3)
    
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.
4)
    
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.
5)
    
47
4700
Returns: "14806...28928 * 10^1163"
6)
    
1
19
Returns: "12164...08832 * 10^3"
Note that the last five digits of D can start with a zero.
7)
    
13
25
Returns: "32382...26624 * 10^4"

Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=9916

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=13511&pm=9916

Writer:

misof

Testers:

PabloGilberto , Olexiy , ivan_metelsky , zhuzeyuan

Problem categories:

Math