Write a procedure

void factor(int n, int& f, int& q);

to store in *f* the most frequent factor of *n*,
and store in *q* how many times it appears.
If there is a tie, choose the smallest factor.
For instance, if called with *n* = 450 = 2^{1} · 3^{2} · 5^{2},
the values after the call must be
*f* =3 and *q* = 2.

Precondition

*n* ≥ 2

Observation You only need to submit the required procedure; your main program will be ignored.

Public test cases

**Input/Output**

factor(450) → 3 2

factor(23) → 23 1

factor(49) → 7 2

factor(23) → 23 1

factor(49) → 7 2

Information

- Author
- Salvador Roura
- Language
- English
- Translator
- Salvador Roura
- Original language
- Catalan
- Other languages
- Catalan
- Official solutions
- C++
- User solutions
- C++