Sto provando a risolvere Kfree ma credo di aver considerato male qualcosa, da come ho capito il problema per risolverlo basta: quando inserisco un valore v tolgo dai possibili valori inseribili v*k
#include<fstream>
#include<algorithm>
using namespace std;
bool multiplo[100000];
long long int Trova(int N, int K, int insieme[]){
sort(insieme, insieme+N);
long long int soluzioni=0;
for(int i=0;i<N;i++)
{
if(multiplo[insieme[i]]==false)
{
if(insieme[i]*K<=100000)
multiplo[insieme[i]*K]=true;
soluzioni++;
}
}
return soluzioni;
}