Pagini recente » Cod sursa (job #2784242) | Cod sursa (job #3189645) | Cod sursa (job #586597) | Cod sursa (job #2648575) | Cod sursa (job #145857)
Cod sursa(job #145857)
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
#define INPUT "ciur.in"
#define OUTPUT "ciur.out"
#define CL(x) memset(x,0,sizeof(x));
FILE *fin=fopen(INPUT, "r"),*fout=fopen(OUTPUT, "w");
vector<int> ciur(2000001);
vector<int> solutie;
long n;
inline void readValues(){fscanf(fin, "%ld", &n);}
void solveFunction();
void printSolution();
int main(){
readValues();
solveFunction();
fclose(fin);
fclose(fout);
return 0;
}
void solveFunction(){
int lastPoz,nrTotal;
lastPoz=0;
for(long i=2;i<=n;++i)
if(!ciur[i]){
lastPoz=i;
for(long j=i+i;j<=n;j+=i)
ciur[j]=1;
}
nrTotal=0;
for(long i=lastPoz;i>1&&nrTotal!=1000;--i){
if(!ciur[i]){
solutie.push_back(i);
++nrTotal;
}
}
reverse(solutie.begin(), solutie.end());
fprintf(fout, "%d\n", nrTotal);
for(int i=0;i<nrTotal;++i)
fprintf(fout, "%d ", solutie[i]);
fprintf(fout, "\n");
}