Pagini recente » Monitorul de evaluare | Cod sursa (job #1757453) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #900024)
Cod sursa(job #900024)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#include <deque>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
#define nmax 2000005
#define ll long long
int n, phi[nmax];
bool viz[nmax];
void citeste(){
f >> n;
}
void bagaCiur(){
for(int i=2; i<nmax; ++i){
phi[i] = phi[i-1];
if (viz[i] == 1) continue;// i nu e numar prim
// i e prim
++phi[i];
for(int j=i*2; j<nmax; j+=i){
viz[j] = 1;
}
}
}
void rezolva(){
bagaCiur();
g << phi[n] << "\n";
}
int main(){
citeste();
rezolva();
f.close();
g.close();
return 0;
}