Números apocalípticos

Neste desafio, determine se um número é apocalíptico. Um inteiro positivo n maior que 0 é apocalíptico quando o resultado de elevar 2 a n contém uma ou mais ocorrências de 666.

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

  • "Safe" se n não for apocalíptico.
  • "Single" se 2^n contiver uma ocorrência de 666.
  • "Double" se 2^n contiver duas ocorrências de 666.
  • "Triple" se 2^n contiver 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| ...

Notas

  • O valor de n será um inteiro positivo entre 1 e 1000.
  • Conte as ocorrências sem sobreposição. Um dígito não pode fazer parte de duas correspondências (veja o exemplo nº 3: cinco dígitos 6 consecutivos contêm apenas uma ocorrência de 666 sem sobreposição).