TopcoderArchiveVisit Topcoder
SRM18 Oct 2004
SRM 216

Refactoring

Problem statement, definition, constraints, and public examples.

Problem Statement

You have been hired to do some refactoring. You are not really sure what that is, but you think it has something to do with factoring a number multiple times.

Recall that a factorization of a positive integer n is a collection of at least two positive integers, each larger than one, whose product is n. Note that the order of the numbers in a factorization is ignored, so 2*12 and 12*2 represent the same factorization of 24. In fact, 24 has precisely 6 valid factorizations: 2*2*2*3, 2*2*6, 2*3*4, 2*12, 3*8, and 4*6.

To prepare for your job, write a program that, given an int n, returns the number of unique factorizations of n.

Definition

Class:
Refactoring
Method:
refactor
Parameters:
int
Returns:
int
Method signature:
int refactor(int n)
(be sure your method is public)

Constraints

  • n will be between 2 and 2,000,000,000 inclusive.

Examples

  1. 24
    Returns: 6
    This is the example from the problem statement.
  2. 9973
    Returns: 0
    9973 is a prime number, so there are no valid factorizations of 9973.
  3. 9240
    Returns: 295
  4. 1916006400
    Returns: 7389115
    The number of factorizations will never be larger than this.
Back to all problems