Problem 38
- n > 1 なので 100000 まで調べている。もっと値は小さくできそうだけど……。
using System;
class PE038 {
static int Calc(int n) {
string s = "";
for (int i = 1; ; i++) {
s += (n * i).ToString();
int[] freq = new int[10];
int m = 0;
for (int j = 0; j < s.Length; j++) {
int p = s[j] - '0';
if (p != 0 && 1 == ++freq[p]) {
m++;
}
else {
return -1;
}
}
if (m == 9) {
Console.WriteLine("{0} {1} {2}", n, i, s);
return int.Parse(s);
}
}
}
static void Main() {
int ans = Enumerable.Range(1, 100000).Select(e => Calc(e)).Max();
Console.WriteLine(ans);
}
}