Pagini recente » Cod sursa (job #2899808) | Cod sursa (job #2591338) | Cod sursa (job #2899938) | Cod sursa (job #3168425) | Cod sursa (job #1669083)
#include <iostream>
using namespace std;
int x[510],k,z;
struct
{
int numar,aparitii;
}Y[510];
void citire()
{
int c;
cin>>c;
while(c)
{
x[++k]=c;
cin>>c;
}
}
int prim(int n)
{
for(int d=2;d*d<=n;d++)
{
if(n%d==0) return 0;
}
return 1;
}
int suma_cifre(int n)
{
int sol=0;
while(n)
{
sol+=n%10;
n/=10;
}
return sol;
}
void inserare(int n)
{
if(prim(suma_cifre(n)))
{
int ok=0;
for(int i=1;i<=z;i++)
{
if(Y[z].numar==n)
{
ok=1;
}
}
if(!ok)
{
Y[++z].numar=n;
for(int i=1;i<=k;i++)
{
if(x[i]==n)
{
Y[z].aparitii++;
}
}
}
}
}
void construire()
{
for(int i=1;i<=k;i++)
{
inserare(x[i]);
}
}
void afisare()
{
if(z)
{
for(int i=1;i<=z;i++)
{
cout<<"("<<Y[i].numar<<","<<Y[i].aparitii<<")"<<'\n';
}
}
else
{
cout<<"Sirul Y este vid.";
}
}
int main()
{
citire();
for(int i=1;i<=k;i++)
{
for(int j=i+1;j<=k;j++)
{
if(x[j]<x[i])
{
x[i]^=x[j]^=x[i]^=x[j];
}
}
}
construire();
afisare();
return 0;
}