Cod sursa(job #206761)
Utilizator | Data | 9 septembrie 2008 13:31:30 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include<iostream.h>
#include<fstream.h>
#include<math.h>
int main()
{
long int nr,phi,j;
fstream f("ciur.in",ios::in),g("ciur.out",ios::out);
f>>nr;
phi=nr;
for(j=2;j<=sqrt(nr);j++)
{
if(nr%j==0)
{
phi=phi*(j-1)/j;
while(nr%j==0)
nr/=j;
}
if(nr>1)
phi=phi*(nr-1)/nr;
}
g<<phi;
f.close();g.close();
return 0;
}