Se citeste un vector v cu n elemente care sunt nr. intregi. Afisati 2 nr. separate astfel:
-primul nr. relerezinta cel mai mare nr. care se poate forma luand de la fiecare element din vector doar cifra maxima;
-al doilea nr. reprezinta numerele super-prime din vector(super prim este numarul care este prim si care are si oglinditul sau prim)
URGENT, VA ROG!
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int ogl(int x)
{
int y=0;
while (x)
{
y=y*10+x%10;
x=x/10;
}
return y;
}
int prim(int x)
{
int p=1;
if (x<2) p=0;
if (x>2)
{
if (x%2==0) p=0;
else
{
for (int j=3; j*j<=x; j+=2)
if (x%j==0) p=0;
}
}
return p;
}
int main()
{
int n, i, num, copie;
cout << "n= "; cin >> n;
int v[n], c[10], sp[n], cif, cifmax, k=-1;
for (i=0; i<10; ++i)
c[i]=0;
cout << " introdu " << n << " numere intregi " << endl;
for (i=0; i<n; ++i)
{
cin >> v[i];
num=v[i];
if (num<0) num=-num;
cifmax=0; copie=num;
if (num==0) cifmax=0;
else
{
while (num)
{
cif=num%10;
if (cif>cifmax) cifmax=cif;
num=num/10;
}
}
++c[cifmax];
if (prim(copie) && prim(ogl(copie))) { ++k; sp[k]=v[i]; }
}
for (i=9; i>=0; --i)
{
if (c[i]>0)
{
for (int j=1; j<=c[i]; ++j)
cout << i;
}
}
cout << endl;
for (i=0; i<=k; ++i)
cout << sp[i] << " ";
}