Răspuns :
#include <iostream>
#include <fstream>
using namespace std;
int nrDiv(int nr)
{
int nrDiv = 0;
for(int i = 2; i < nr - 1; i++)
{
if(nr % i == 0)
nrDiv++;
}
return nrDiv;
}
int maiMicDecat(int i, int j[])
{
int idx = 0;
for(int k = 0; k < sizeOf(j); k++){
if(j[k] > i)
return k;
}
return -1;
}
int main(int argc, char** argv)
{
ifstream in("Numere.txt");
int n, k;
in >> n >> k;
int nr[n];
bool scrie = true;
int rem;
for(int i = 0; i < n; i++)
{
in >> nr[i];
int r = nr[i] % 2;
if(i == 0)
rem = r;
else{
scrie = rem == r && scrie;
}
if(nrDiv(nr[i]) < k)
nr[i] = -1;
else
for(int j = 0; j < i; j++){
if(nr[i] == nr[j])
nr[i] = -1;
}
}
if(scrie)
cout << "DA";
in.close();
int numereSortate[n];
int ptr = 0;
for(int i = 0; i < n;i++){
if(nr[i] != -1)
{
if(numereSortate[0] > nr[i])
{
for(int j = n-1; j > 0; j--){
numereSortate[j] = numereSortate[j-1];
}
numereSortate[0] = nr[i];
ptr++;
}
else if(numereSortate[ptr-1] < nr[i]){
numereSortate[ptr] = nr[i];
ptr++;
}
else{
int idx = maiMicDecat(nr[i], numereSortate);
for(int j = n-1; j > idx; j--){
numereSortate[j] = numereSortate[j-1];
}
numereSortate[idx] = nr[i];
ptr++;
}
}
}
for(int i = 0; i < ptr; i++){
cout << numereSortate[i] << " ";
}
}
#include <fstream>
using namespace std;
int nrDiv(int nr)
{
int nrDiv = 0;
for(int i = 2; i < nr - 1; i++)
{
if(nr % i == 0)
nrDiv++;
}
return nrDiv;
}
int maiMicDecat(int i, int j[])
{
int idx = 0;
for(int k = 0; k < sizeOf(j); k++){
if(j[k] > i)
return k;
}
return -1;
}
int main(int argc, char** argv)
{
ifstream in("Numere.txt");
int n, k;
in >> n >> k;
int nr[n];
bool scrie = true;
int rem;
for(int i = 0; i < n; i++)
{
in >> nr[i];
int r = nr[i] % 2;
if(i == 0)
rem = r;
else{
scrie = rem == r && scrie;
}
if(nrDiv(nr[i]) < k)
nr[i] = -1;
else
for(int j = 0; j < i; j++){
if(nr[i] == nr[j])
nr[i] = -1;
}
}
if(scrie)
cout << "DA";
in.close();
int numereSortate[n];
int ptr = 0;
for(int i = 0; i < n;i++){
if(nr[i] != -1)
{
if(numereSortate[0] > nr[i])
{
for(int j = n-1; j > 0; j--){
numereSortate[j] = numereSortate[j-1];
}
numereSortate[0] = nr[i];
ptr++;
}
else if(numereSortate[ptr-1] < nr[i]){
numereSortate[ptr] = nr[i];
ptr++;
}
else{
int idx = maiMicDecat(nr[i], numereSortate);
for(int j = n-1; j > idx; j--){
numereSortate[j] = numereSortate[j-1];
}
numereSortate[idx] = nr[i];
ptr++;
}
}
}
for(int i = 0; i < ptr; i++){
cout << numereSortate[i] << " ";
}
}