Números apocalípticos

Published by er0s in

Neste desafio, você deve determinar se um número é apocalíptico. Um inteiro positivo n maior que 0 é apocalíptico quando 2 elevado a n contém uma ou mais ocorrências de 666 dentro dele.

Dado um inteiro n, implemente uma função que retorne:

  • "Safe" se n não for apocalíptico.
  • "Single" se dentro de 2^n houver uma única ocorrência de 666.
  • "Double" se dentro de 2^n houver duas ocorrências de 666.
  • "Triple" se dentro de 2^n houver três ocorrências de 666.

Exemplos

isApocalyptic(66) ➞ "Safe"
// 2^66 = 73786976294838206464

isApocalyptic(157) ➞ "Single"
// 2^157 =
// 182687704|666|362864775460604089535377456991567872

isApocalyptic(220) ➞ "Double"
// 2^220 =
// 168499|666|66969149871|666|8844293872691710232152640 ...

isApocalyptic(931) ➞ "Triple"
// 2^931 =
// 181520618710|666|8777829|666|135436890332191479738353753001777065257954029122510259245050254290156440857653562895251700406555730694879815558725330603736697259064676478076718090|666| ...

Observações

  • Qualquer n fornecido será um inteiro positivo no intervalo de 1 a 1000.
  • Conte as ocorrências que não se sobreponham. Um dígito não pode fazer parte de duas ocorrências (veja o exemplo #3: cinco 6 adjacentes contêm apenas um 666 que não se sobrepõe).