Răspuns:
Raspuns cu recursivitate a.k.a. mai optimizat
Explicație:
#include <iostream>
#include <cmath>
using namespace std;
int prim(int n)
{
if(n<2)
return 0;
if(n==2)
return 1;
if(n%2==0)
return 0;
int d;
for(d=2;d*d<=n;d=d+2)
if(n%d==0)
return 0;
return 1;
}
void recursiv(int n,int y)
{
int lafel=y;
string t,x;
t=to_string(n);
x=t;
if(stoul(x)>=1&&prim(stoul(x))==1&&lafel!=n)
cout<<x<<' ';
if(n>0)
recursiv(n/10,1);
}
int main()
{
int n,y;
cin>>n;
y=n;
recursiv(n,y);
return 0;
}