Răspuns :
#include <fstream>
using namespace std;
ifstream f("prim.in");
ofstream g("prim.out");
int n,k,nrnp,prim[10001]; //prim[i]=0 daca i este prim (la inceput presupunem ca toate-s prime)int main()
{
f>>n>>k;
for(int i=2;i<=n;++i)
if(prim[i]==0) // i este prim => multiplii pana la n vor fi unu
for(int j=2;j*i<=n;++j)
prim[i*j]=1;
for(int i=2;i<=n;++i)
if(prim[i]==0)
++nrnp;
prim[0]=1,prim[1]=1;
k*=2;
if(nrnp%2)
--k;
int prima_poz=0;
if(k>nrnp)
k=n;
else
prima_poz=(nrnp-k)/2;
g<<"NRNP= "<<nrnp<<" K= "<<k<<" PRIMA POZ= "<<prima_poz<<endl;
for(int i=1,j=0;i<=n&&j<k;++i)
if(!prim[i])
{
if(prima_poz)
--prima_poz;
else
++j,g<<i<<' ';
}
return 0;
}
using namespace std;
ifstream f("prim.in");
ofstream g("prim.out");
int n,k,nrnp,prim[10001]; //prim[i]=0 daca i este prim (la inceput presupunem ca toate-s prime)int main()
{
f>>n>>k;
for(int i=2;i<=n;++i)
if(prim[i]==0) // i este prim => multiplii pana la n vor fi unu
for(int j=2;j*i<=n;++j)
prim[i*j]=1;
for(int i=2;i<=n;++i)
if(prim[i]==0)
++nrnp;
prim[0]=1,prim[1]=1;
k*=2;
if(nrnp%2)
--k;
int prima_poz=0;
if(k>nrnp)
k=n;
else
prima_poz=(nrnp-k)/2;
g<<"NRNP= "<<nrnp<<" K= "<<k<<" PRIMA POZ= "<<prima_poz<<endl;
for(int i=1,j=0;i<=n&&j<k;++i)
if(!prim[i])
{
if(prima_poz)
--prima_poz;
else
++j,g<<i<<' ';
}
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!