Cod sursa(job #826472)
| Utilizator | Data | 30 noiembrie 2012 19:40:05 | |
|---|---|---|---|
| Problema | Fractii | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include<fstream>
using namespace std;
#define MIL 1000003
ifstream fin("fractii.in");
ofstream fout("fractii.out");
bool Prime[MIL];
long long Sol,Phi[MIL];
int N;
void ciur(){
int i,j;
for(i=1;i<MIL;i++){
if(!(i%2))
Phi[i]=i/2;
else
Phi[i]=i;
}
for(i=3;i<=1000;i+=2){
if(Phi[i]==i){
for(j=i ; j<=N; j+=i){
Phi[j]=Phi[j]*(i-1)/i;
}
}
}
for(i=2;i<=N;i++){
Sol+=2*Phi[i];
}
}
int main(){
fin>>N;
Sol=1;
ciur();
fout<<Sol<<"\n";
fin.close();
fout.close();
return 0;
}
