Pagini recente » Istoria paginii runda/shumenichb2013 | Cod sursa (job #856259) | Cod sursa (job #1452860) | Cod sursa (job #1187507) | Cod sursa (job #1110148)
//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;
/* 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=j+2*i)
a[j]=1;
}
for (i=0;i<N/2;i++)
if (a[i]==0) contor++;
g<<contor;
}