public class Main {
public static void main
(String[] args
) { // Hardcoded test cases for easy execution
int[] testCases = {2, 6, 24, 64, 1000000000};
for (int n : testCases) {
System.
out.
print("n = " + n
+ " -> "); solve(n);
}
}
public static void solve(int n) {
int a = -1;
/*
* LOGIC (a^3 <= n):
* We need 3 distinct factors where a < b < c.
* Since a, b, c are distinct, a * a * a MUST be strictly less than a * b * c (which equals n).
* Therefore, if a exists, it cannot be larger than the cube root of n.
* Using (i * i * i <= n) prevents searching uselessly large numbers.
*/
for (int i = 2; i * i * i <= n; i++) {
if (n % i == 0) {
a = i;
break;
}
}
// If no valid first factor 'a' exists, we cannot form 3 distinct numbers
if (a == -1) {
return;
}
int rem = n / a;
int b = -1;
// Find 'b' starting from (a + 1) to ensure b > a
// It must be smaller than the square root of the remaining value (i * i <= rem)
for (int i = a + 1; i * i <= rem; i++) {
if (rem % i == 0) {
b = i;
break;
}
}
if (b == -1) {
return;
}
// 'c' takes whatever is left over from the original number
int c = rem / b;
// Final sanity check: ensure c is greater than b and distinct from a
if (c > b && c != a) {
System.
out.
println("YES (" + a
+ " * " + b
+ " * " + c
+ ")"); } else {
}
}
}
cHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIC8vIEhhcmRjb2RlZCB0ZXN0IGNhc2VzIGZvciBlYXN5IGV4ZWN1dGlvbgogICAgICAgIGludFtdIHRlc3RDYXNlcyA9IHsyLCA2LCAyNCwgNjQsIDEwMDAwMDAwMDB9OwoKICAgICAgICBmb3IgKGludCBuIDogdGVzdENhc2VzKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIm4gPSAiICsgbiArICIgLT4gIik7CiAgICAgICAgICAgIHNvbHZlKG4pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgc29sdmUoaW50IG4pIHsKICAgICAgICBpbnQgYSA9IC0xOwoKICAgICAgICAvKiAKICAgICAgICAgKiBMT0dJQyAoYV4zIDw9IG4pOgogICAgICAgICAqIFdlIG5lZWQgMyBkaXN0aW5jdCBmYWN0b3JzIHdoZXJlIGEgPCBiIDwgYy4gCiAgICAgICAgICogU2luY2UgYSwgYiwgYyBhcmUgZGlzdGluY3QsIGEgKiBhICogYSBNVVNUIGJlIHN0cmljdGx5IGxlc3MgdGhhbiBhICogYiAqIGMgKHdoaWNoIGVxdWFscyBuKS4KICAgICAgICAgKiBUaGVyZWZvcmUsIGlmIGEgZXhpc3RzLCBpdCBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gdGhlIGN1YmUgcm9vdCBvZiBuLgogICAgICAgICAqIFVzaW5nIChpICogaSAqIGkgPD0gbikgcHJldmVudHMgc2VhcmNoaW5nIHVzZWxlc3NseSBsYXJnZSBudW1iZXJzLgogICAgICAgICAqLwogICAgICAgIGZvciAoaW50IGkgPSAyOyBpICogaSAqIGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGlmIChuICUgaSA9PSAwKSB7CiAgICAgICAgICAgICAgICBhID0gaTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBJZiBubyB2YWxpZCBmaXJzdCBmYWN0b3IgJ2EnIGV4aXN0cywgd2UgY2Fubm90IGZvcm0gMyBkaXN0aW5jdCBudW1iZXJzCiAgICAgICAgaWYgKGEgPT0gLTEpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOTyIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpbnQgcmVtID0gbiAvIGE7CiAgICAgICAgaW50IGIgPSAtMTsKCiAgICAgICAgLy8gRmluZCAnYicgc3RhcnRpbmcgZnJvbSAoYSArIDEpIHRvIGVuc3VyZSBiID4gYQogICAgICAgIC8vIEl0IG11c3QgYmUgc21hbGxlciB0aGFuIHRoZSBzcXVhcmUgcm9vdCBvZiB0aGUgcmVtYWluaW5nIHZhbHVlIChpICogaSA8PSByZW0pCiAgICAgICAgZm9yIChpbnQgaSA9IGEgKyAxOyBpICogaSA8PSByZW07IGkrKykgewogICAgICAgICAgICBpZiAocmVtICUgaSA9PSAwKSB7CiAgICAgICAgICAgICAgICBiID0gaTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoYiA9PSAtMSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk5PIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIC8vICdjJyB0YWtlcyB3aGF0ZXZlciBpcyBsZWZ0IG92ZXIgZnJvbSB0aGUgb3JpZ2luYWwgbnVtYmVyCiAgICAgICAgaW50IGMgPSByZW0gLyBiOwoKICAgICAgICAvLyBGaW5hbCBzYW5pdHkgY2hlY2s6IGVuc3VyZSBjIGlzIGdyZWF0ZXIgdGhhbiBiIGFuZCBkaXN0aW5jdCBmcm9tIGEKICAgICAgICBpZiAoYyA+IGIgJiYgYyAhPSBhKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWUVTICgiICsgYSArICIgKiAiICsgYiArICIgKiAiICsgYyArICIpIik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOTyIpOwogICAgICAgIH0KICAgIH0KfQo=