Cod sursa(job #372426)
| Utilizator | Data | 10 decembrie 2009 00:14:22 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <fstream>
using namespace std;
int fi(int n){
int produs=n;
int p=0,d=2;
while(n%d==0)
p++, n /= d;
if(p)
produs = produs/d*(d-1);
d=3;
while(n>1){
p=0;
while(n%d==0)
n /= d, p++;
if(p)
produs = produs/d*(d-1);
d+=2;
if(d*d > n && n>1)
d=n;
}
return produs;
}
int main(){
ifstream fin("fractii.in");
int n;
fin>>n;
int sum=1;
for(int i=2;i<=n;i++)
sum+= 2 * fi(i);
ofstream fout("fractii.out");
fout<<sum<<endl;
return 0;
}
