Contar dígitos em quadrados consecutivos

Eleve ao quadrado todos os números inteiros de 0 até n, incluindo os dois extremos. Depois, conte quantas vezes o dígito d aparece na representação decimal de todos esses quadrados.

Exemplos

Program.CountDigits(10, 1) // 4
// Os quadrados de 0 até 10 são 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 e 100.
// O dígito 1 aparece quatro vezes.

Program.CountDigits(25, 2) // 9

Notas

d é sempre um dígito decimal entre 0 e 9.