C++:
#include<iostream>
#include<stdlib.h>
using namespace std;
int primes(int N)
{
int prime=1,numprimes=0,i,isprime=1;
while(prime<=N)
{
for(i=2; i<prime; i++)
if(prime%i==0)
{
isprime=0;
i=prime;
}
if(isprime) numprimes++;
prime++;
isprime=1;
}
return numprimes;
}
int *saveprimes(int nprimes,int N)
{
int *array;
array=(int *)malloc(sizeof(nprimes));
int prime=1,numprimes=0,i,cont=0,isprime=1;
while(prime<=N)
{
for(i=2; i<prime; i++)
if(prime%i==0)
{
isprime=0;
i=prime;
}
if(isprime)
{
*(array+cont)=prime;
cont++;
numprimes++;
}
prime++;
isprime=1;
}
return array;
}
void impcentro(int *array, int C,int nprimes)
{
int centro,i,izq,der;
centro=nprimes/2;
if(nprimes%2!=0)
{
C=(C*2)-1;
izq=centro-(C-1)/2;
der=centro+(C-1)/2;
}
else
{
C=C*2;
izq=centro-C/2;
der=centro+(C-1)/2;
}
if(C>nprimes)
{
izq=0;
der=nprimes-1;
}
for(i=izq; i<=der;i++)
cout<<" "<<*(array+i);
cout<<"\n";
free(array);
}
main()
{
int N,C,nprimes,*primos;
while(cin>>N>>C && N>=1 && C>=1 && C<=N)
{
cout<<N<<" "<<C<<":";
nprimes=primes(N);
primos=saveprimes(nprimes,N);
impcentro(primos,C,nprimes);
}
}
Thnkz for Help me!!
