Números de Sastry

Neste desafio, determine se um inteiro dado n é um número de Sastry. Se o número obtido ao concatenar um inteiro n com seu sucessor for um quadrado perfeito, então n é um número de Sastry.

Dado um inteiro positivo n, implemente um método que retorne true se n for um número de Sastry, ou false caso contrário.

Exemplos

Program.isSastry(183) ➞ true
// Concatenação de n com seu sucessor = 183184
// 183184 é um quadrado perfeito (428 ^ 2)

Program.isSastry(184) ➞ false
// Concatenação de n com seu sucessor = 184185
// 184185 não é um quadrado perfeito

Program.isSastry(106755) ➞ true
// Concatenação de n com seu sucessor = 106755106756
// 106755106756 é um quadrado perfeito (326734 ^ 2)

Notas

  • Um quadrado perfeito é um número cuja raiz quadrada é um número inteiro.
  • A entrada sempre será um inteiro positivo válido maior que 0; não há casos excepcionais a tratar. Zero é um quadrado perfeito, mas a concatenação 00 não é considerada um resultado válido para verificar.
  • O valor concatenado pode ultrapassar long; use aritmética exata, como BigInteger, em vez de aproximações de ponto flutuante.