Cod sursa(job #2927818)
| Utilizator | Data | 21 octombrie 2022 16:25:58 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
#include <list>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int ciur(int n)
{
int nr=0;
bool *lista = new bool[n+1];
lista[2]=true;
for(int i=3;i<=n;i+=2)
lista[i]=true;
for(int i=3;i*i<=n;i+=2)
if(lista[i])
for(int j=i*i;j<=n;j+=i)
lista[j]=false;
if(n%lista[2]==0)
nr++;
for(int i=3;i<=n;i+=2)
if(lista[i])
nr++;
return nr;
}
int main()
{
int n;
f>>n;
g<<ciur(n);
return 0;
}
