Răspuns :
Uite aici o varianta cu descompunere in factori.
#include <iostream>
#include <algorithm>
using namespace std;
int x[500],y[500], n, k, ok;
void citire()
{
for (int i = 0;i < n;i ++)
cin >> x[i];
}
void tiparire(int *vector,int n)
{
for (int i = 0;i < n;i ++)
cout << vector[i] << ' ';
}
void ConstruiereSir (int a)
{
y[k ++] = a;
}
void PutereIntai(int a,int test)
{
if ( test == 1 )
ConstruiereSir(a);
}
void Descompunere(int a)
{
int d = 2,c;
while(a != 1)
{
c = 0;
while (a % d == 0)
{
a /= d;
c ++;
}
if ( c == 1 )
{
ok = 1;
PutereIntai(d,c);
}
d ++;
}
}
void duplicate(int *vector,int &n)
{
for (int i = 0;i < n - 1;i ++)
{
int element = vector[i];
for (int j = i + 1;j < n;j++)
if (element == vector[j])
{
for(int i = j ; i < n - 1; i ++)
vector[i] = vector[i+1];
n --;
j --;
}
}
}
int main()
{
cin >> n;
citire();
for (int i = 0;i < n;i ++)
Descompunere(x[i]);
sort(y,y + k);
duplicate(y,k);
if (ok)
tiparire(y,k);
else
cout << "Sirul Y este vid.";
return 0;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Ne bucurăm dacă informațiile v-au fost de ajutor. Dacă aveți întrebări suplimentare sau aveți nevoie de asistență, nu ezitați să ne contactați. Revenirea dumneavoastră ne-ar onora, așa că nu uitați să ne adăugați la favorite!