Fişierul text cinci.in conține o linie cu numere natural nenule de maxim 4 cifre, separate prin spațiu. Să se afişeze, în fişierul text cinci.out, separate prin câte un spațiu: pe prima linie toate numerele prime din fişierul de intrare in ordine crescatoare, apoi pe a doua linie doar elementele palindroame dintre cele prime. (subprogram pentru: -verificarea daca un numar este numar prim, -verificarea daca un numar este palindrom, -ordonarea descrescatoarea a elementelor unui vector, -stergerea din vector a elementelor care nu sunt palindroame, -afisarea elementelor unui vector in fisier). Exemplu: Dacă fișierul cinci.in are conține 12 353 13 1317 1 14 3 25 149 atunci fişierul cinci.out va avea conţinutul de mai jos : 2 7 13 131 149 353 2 7 131 353​

Răspuns :

#include <fstream>

ifstream fin("cinci.in);

ofstream fout("cinci.out);

bool nrprim(int n)

{

if ( x==0 || x==1) return false;

for(int i=2; i*i<=n ;i++)

    if(n%i==0)

        return false;

return true;

}

bool palindrom(int n)

{

int x=0;

while(n)

{

x=x*10+n%10;

n/=10;

}

if(n==x)

return true;

return false;

}

void ordonare(int A[], int n)

{

int i,j;

for(i=1;i<n;i++)

for(j=i+1;j<=n;j++)

if(A[i]>A[j])

{

A[i]=A[i]+A[j];

A[j]=A[i]-A[j];

A[i]=A[i]-A[j];

}

}

void afisare(int A[], int n)

{

for(int i=1;i<=n;i++)

cout<<A[i]<<" ";

}

void stergere(int A[], int &n)

{

for(int=1;i<=n;i++)

{

if(palindrom(A[i])==0)

for(int j=i+1;j<=n;j++)

{

A[i]=A[j];

}

n--;

}

}