Un numero è un numero primo di Chen se soddisfa due condizioni:
- È primo in sé
- Di per sé più due è un numero primo o un semi-primo.
Un numero primo è un numero in cui ha esattamente due divisori e quei divisori sono costituiti da se stesso e uno.
Un semi-primo è un numero che è il prodotto di due numeri primi. (Nota che 12 = 2 * 2 * 3 non è semi-primo, ma 25 = 5 * 5 lo è).
Il tuo compito è determinare se un numero è un numero primo di Chen. Dovresti generare qualsiasi valore di verità per sì e qualsiasi valore di falsa per no.
L'input sarà un numero intero maggiore o uguale a uno. Può anche essere preso come una stringa, una matrice di caratteri o una matrice o cifre.
Esempi:
101 -> truthy
223 -> falsy
233 -> truthy
1 -> falsy
Questo è OEIS A109611 .
Questo è, in parte, ispirato da Am I a Sophie Germain prime? che, sfortunatamente, è stato chiuso come duplicato, quindi sto postando una sfida in qualche modo correlata che non è un duplicato.
2 * 2 * 2 * 3 * 3
un semi-prime? Che dire 5 * 5
?
5*5
è semi-primo, 2*2*2*3*3
non lo è. Ho detto esattamente due.
2*2*2*3*3
ha esattamente due fattori primi, vale a dire 2
e 3
, e 5*5
ha un fattore primo, vale a dire 5
.) Forse potresti modificarlo nella domanda?
True
per verità2
oFalse
falsità (valori di falsità incoerenti)?