Números apocalípticos

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.

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

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

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

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

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

Notas

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