Buenas.
Me encontre con el ejercicio siguiente:
PROBLEMA: Definiremos número primo absoluto a un número primo que las sucesivas sumas de sus dígitos (hasta llegar a un número de un solo dígito) también son números primos.
EJEMPLO: 29 es un número primo
La suma de sus dígitos 2 + 9 = 11 también es un número primo
La suma de los dígitos de 11 1 + 1 = 2 también es un número primo
Por lo tanto, 29 es un número primo absoluto.
Evidentemente los números primos de una sola cifra son todos primeros absolutos.
Como se podria crear una lista con todos los primos absolutos desde 1 hasta un numero en cuestion?
#include <iostream>
using namespace std;
unsigned suma_digitos (unsigned n){
unsigned suma=0;
cin >> n;
while (n>0){
suma= suma+n%10;
n= n/10;}
}
bool primero(int n){
if(n==1||n==2)
return true;
for(int i=2;i<n/2;i++){
if(n%i==0)
return false;
}
return true;
}
int main (){
unsigned n;
cout << "Digite un numero " <<endl;
cin >> n;
if (primero(n) and suma_digitos(primero(n))) cout << suma_digitos(n);
else cout << suma_digitos(n);
return 0;
}