Primalidad de una oración

El valor de una palabra se puede determinar sumando los valores numéricos de cada carácter individual (sin incluir espacios ni signos de puntuación): a las letras se les asigna un valor del 1 ("a") al 26 ("z"), mientras que los números tienen sus valores literales, del 0 al 9. El valor de la oración es la suma de los valores de las palabras.

sentence = "ABC ! abc ... @ 123"
// Remove spaces, punctuation and any symbol.

sentence = ["ABC", "abc", "123"]

words values = "ABC" = 1+2+3 = 6 | "abc" = 1+2+3 = 6 | "123" = 1+2+3 = 6

sentence value = 6 + 6 + 6 = 18

Dada una cadena sentence, implementa una función que devuelva:

  • Prime Sentence si el valor original de la oración es primo.

  • Almost Prime Sentence (xxx) si el valor de la oración no es primo, pero después de eliminar una sola de las palabras el nuevo valor es primo (consulta el ejemplo #2 para una explicación más clara), donde xxx es la palabra eliminada. Si se puede eliminar más de una palabra para obtener un valor primo, devuelve la primera que aparezca en la oración original.

  • Composite Sentence si el valor de la oración no es primo y es necesario eliminar más de una palabra para que el nuevo valor de la oración sea primo (o si no es posible).

Los valores de las letras no distinguen entre mayúsculas y minúsculas ("aZ" = "Az" = 1 + 26 = 27), mientras que los números se tratan como palabras ("123" = 1+2+3 = 6).

Ejemplos

sentencePrimeness("Help me!") ➞ "Prime Sentence"
// "Help" + "me" = 41 + 18 = 59 (prime)

sentencePrimeness("42 is THE aNsWeR...") ➞ "Almost Prime Sentence (aNsWeR)"
// "42" + "is" + "THE" + "aNsWeR" = 6 + 28 + 33 + 80 = 147 (not prime)
// Without "42" new value is 141
// Without "is" new value is 119
// Without "THE" new value is 114
// Without "aNsWeR" new value is 67 (prime!)
// If the word "aNsWeR" is removed from sentence the new value is a prime.

sentencePrimeness("Did you smoke?") ➞ "Composite Sentence"
// "Did" + "you" + "smoke" = 17 + 61 + 63 = 141 (not prime)
// Without "Did" new value is 124
// Without "you" new value is 80
// Without "smoke" new value is 78
// No single removals make the new sentence value a prime.

Notas

  • Solo las letras y los dígitos pueden formar parte de la oración.
  • Si es una Almost Prime Sentence, la palabra eliminada entre paréntesis debe mantener el mismo formato de mayúsculas y minúsculas que aparece en la oración original (consulta el ejemplo #2).
  • La oración es Almost Prime si se puede eliminar una sola palabra para que el valor sea primo; no se permiten varias eliminaciones.
  • Recuerda la regla para los números: "10" es una palabra, por lo que su valor es 1+0 y no 10.