Connection Status:
Competition Arena > StrongPrimePower
SRM 400 · 2008-05-01 · by ymatsu · Simple Math, Simple Search, Iteration
Class Name: StrongPrimePower
Return Type: int[]
Method Name: baseAndExponent
Arg Types: (string)
Problem Statement

Problem Statement

NOTE: This problem statement contains superscripts that may not display properly if viewed outside of the applet.

A number which can be represented as pq, where p is a prime number and q is an integer greater than 0, is called a prime power. If q is larger than 1, we call the number a strong prime power. You are given an integer n. If n is a strong prime power, return an int[] containing exactly two elements. The first element is p and the second element is q. If n is not a strong prime power, return an empty int[].

Constraints

  • n will contain digits ('0' - '9') only.
  • n will represent an integer between 2 and 10^18, inclusive.
  • n will have no leading zeros.
Examples
0)
"27"
Returns: {3, 3 }

27 = 33. This is a strong prime power.

1)
"10"
Returns: { }

10 = 2 * 5. This is not a strong prime power.

2)
"7"
Returns: { }

A prime number is not a strong prime power.

3)
"1296"
Returns: { }
4)
"576460752303423488"
Returns: {2, 59 }

Submissions are judged against all 217 archived test cases, of which 5 are shown here. Case numbers match the judge’s.

Coding Area

Language: C++17 · define a public class StrongPrimePower with a public method vector<int> baseAndExponent(string n) · 217 test cases · 2 s / 256 MB per case

Submitting as anonymous