package margusmartseppcode.From_30_to_39;
import java.util.HashSet;
import java.util.Set;
public class Problem_32 {
static final int nbrs = 9;
static boolean isPandigital(String s) {
return isPandigital(s, nbrs);
}
static boolean isPandigital(String s, int nr) {
if (s.length() != nr)
return false;
Set<Character> set = new HashSet<<Character>();
for (int i = 0; i < nr; i++)
set.add(s.charAt(i));
if (set.size() != nr)
return false;
if (set.contains('0'))
return false;
return true;
}
public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
int sum = 0;
for (int i = 2, n = 1234; i < 100; i++, n = i > nbrs ? 123 : 1234)
for (int j = n; j < (int) (10000 / i + 1); j++)
if (isPandigital("" + i + j + (i * j)))
set.add(i * j);
for (Integer val : set)
sum += val;
System.out.println(sum);
}
}
Tuesday, September 8, 2009
Euler Problem 32 solution
Time (s): ~0.066
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment