Pagini recente » Cod sursa (job #681418) | Cod sursa (job #742920) | Cod sursa (job #1036815) | Cod sursa (job #1167648) | Cod sursa (job #1110164)
//Programarea in limbajul C/C++ pentru liceu, p.82
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
bool a[1000001];
unsigned int N, i, j, contor=1;
/* varianta de baza
int main()
{
f>>N;
for(i=2;i<=N;i++)
{
for (j=i+i;j<=N;j+=i)
a[j]=1;
}
for (i=2;i<=N;i++)
if (a[i]==0) contor++;
g<<contor;
}*/
/*optimizat prin calcularea doar pina la sqrt(N)
int main()
{
f>>N;
for(i=2;i<=sqrt(N);i++)
{
for (j=i+i;j<=N;j+=i)
a[j]=1;
}
for (i=2;i<=N;i++)
if (a[i]==0) contor++;
g<<contor;
}*/
//a[k]->nr 2*k+1
int main()
{
f>>N;
for(i=3;i<=sqrt(N);i+=2)
{
for (j=(i+i+i)/2; j<=N/2; j+=i)
a[j]=1;
}
for (i=1;i<=N/2;i++)
if (a[i]==0) {contor++;g<<2*i+1<<" ";}
g<<contor;
}