import java.util.*;
import java.lang.*;
import java.io.*;
class Num implements Comparable<Num>
{
int n;
int[] m = new int[10];
public Num()
{
n = 1;
}
private Num(Num num, int i)
{
n = num.n * i;
m
= Arrays.
copyOf(num.
m, num.
m.
length); m[i]++;
}
@Override
{
return String.
format("%5d = 1 * 3^%d * 5^%d * 7^%d", n, m
[3], m
[5], m
[7]); }
@Override
public int compareTo(Num o)
{
}
public static void main
(String[] args
) {
int[] multiplier = { 3, 5, 7 };
TreeSet<Num> result = new TreeSet<Num>();
TreeSet<Num> queue = new TreeSet<Num>();
queue.add(new Num());
while (result.size() < 100)
{
Num num = queue.pollFirst();
result.add(num);
for (int i : multiplier)
{
queue.add(new Num(num, i));
}
}
for (int i = 1; i <= 100; i++)
{
System.
out.
printf("%03d: %s%n", i, result.
pollFirst()); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBOdW0gaW1wbGVtZW50cyBDb21wYXJhYmxlPE51bT4KewogICAgaW50IG47CiAgICBpbnRbXSBtID0gbmV3IGludFsxMF07CgogICAgcHVibGljIE51bSgpCiAgICB7CiAgICAgICAgbiA9IDE7CiAgICB9CgogICAgcHJpdmF0ZSBOdW0oTnVtIG51bSwgaW50IGkpCiAgICB7CiAgICAgICAgbiA9IG51bS5uICogaTsKICAgICAgICBtID0gQXJyYXlzLmNvcHlPZihudW0ubSwgbnVtLm0ubGVuZ3RoKTsKICAgICAgICBtW2ldKys7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gU3RyaW5nLmZvcm1hdCgiJTVkID0gMSAqIDNeJWQgKiA1XiVkICogN14lZCIsIG4sIG1bM10sIG1bNV0sIG1bN10pOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIGludCBjb21wYXJlVG8oTnVtIG8pCiAgICB7CiAgICAgICAgcmV0dXJuIEludGVnZXIuY29tcGFyZShuLCBvLm4pOwogICAgfQoKCgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICAgIHsKICAgICAgICBpbnRbXSBtdWx0aXBsaWVyID0geyAzLCA1LCA3IH07CgogICAgICAgIFRyZWVTZXQ8TnVtPiByZXN1bHQgPSBuZXcgVHJlZVNldDxOdW0+KCk7CiAgICAgICAgVHJlZVNldDxOdW0+IHF1ZXVlID0gbmV3IFRyZWVTZXQ8TnVtPigpOwogICAgICAgIHF1ZXVlLmFkZChuZXcgTnVtKCkpOwogICAgICAgIHdoaWxlIChyZXN1bHQuc2l6ZSgpIDwgMTAwKQogICAgICAgIHsKICAgICAgICAgICAgTnVtIG51bSA9IHF1ZXVlLnBvbGxGaXJzdCgpOwogICAgICAgICAgICByZXN1bHQuYWRkKG51bSk7CgogICAgICAgICAgICBmb3IgKGludCBpIDogbXVsdGlwbGllcikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcXVldWUuYWRkKG5ldyBOdW0obnVtLCBpKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDEwMDsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGYoIiUwM2Q6ICVzJW4iLCBpLCByZXN1bHQucG9sbEZpcnN0KCkpOwogICAgICAgIH0KICAgIH0KfQo=