Cod sursa(job #2238566)
| Utilizator | Data | 6 septembrie 2018 12:36:58 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int v[2000000];
int main()
{
int n,c=0;
f>>n;
for (int i=3;i*i<n;i+=2)
{
for (int j=i*i;j<=n;j+=2*i) v[j]=1;
}
for (int i=1;i<=(n+1)/6;i++)
{
if (6*i-1<=n && v[6*i-1]==0) c++;
if (6*i+1<=n && v[6*i+1]==0) c++;
}
if (n==2) g<<"1";
else if (n==3) g<<"2";
else if (n>=4)
{
c+=2;
g<<c;
}
f.close();
g.close();
return 0;
}
