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 ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți alte întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag să reveniți și nu uitați să ne salvați în lista de favorite!