Permuted multiples: Difference between revisions

Content added Content deleted
(Added XPL0 example.)
(Added Java solution)
Line 252: Line 252:
5 x n = 714285
5 x n = 714285
6 x n = 857142
6 x n = 857142
</pre>

=={{header|Java}}==
<lang java>import java.util.*;

public class PermutedMultiples {
public static void main(String[] args) {
for (int p = 100; ; p *= 10) {
int max = (p * 10) / 6;
for (int n = p + 2; n <= max; n += 3) {
if (sameDigits(n)) {
System.out.printf(" n = %d\n", n);
for (int i = 2; i <= 6; ++i)
System.out.printf("%dn = %d\n", i, n * i);
return;
}
}
}
}

// Returns true if n, 2n, ..., 6n all have the same base 10 digits.
private static boolean sameDigits(int n) {
int[] digits = getDigits(n);
for (int i = 0, m = n; i < 5; ++i) {
m += n;
if (!Arrays.equals(getDigits(m), digits))
return false;
}
return true;
}

private static int[] getDigits(int n) {
int[] digits = new int[10];
do {
++digits[n % 10];
n /= 10;
} while (n > 0);
return digits;
}
}</lang>

{{out}}
<pre>
n = 142857
2n = 285714
3n = 428571
4n = 571428
5n = 714285
6n = 857142
</pre>
</pre>