Esempio n. 1
0
File: p32.c Progetto: elly/euler
int ispandigital(int m2) {
	for (int m0 = 1; m0 < ceil(sqrt(m2)); ++m0) {
		int m1;
		if (m2 % m0 != 0)
			continue;
		m1 = m2 / m0;
		if (ndigits(m0) + ndigits(m1) + ndigits(m2) != 9)
			continue;
		if (sdigits(sdigits(sdigits(0, m0), m1), m2) == SD_ALL) {
			/* printf("bing! %d * %d = %d\n", m0, m1, m2); */
			return 1;
		}
	}
	return 0;
}
Esempio n. 2
0
int ispandigital(int n) {
	int d = ndigits(n);
	unsigned int sd = sdigits(0, n);
	for (int i = 1; i <= d; ++i)
		if (!(sd & (1 << i)))
			return 0;
	return 1;
}