Cod sursa(job #262079)
| Utilizator | Data | 18 februarie 2009 23:10:03 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include<stdio.h>
#define N 2000001
char huge c[N];
int n;
void ciur()
{
float p=n;
for (int i=2; i*i<=n; ++i)
{
int ok=0;
while (n%i==0)
{
n/=i; ++ok;
}
if (ok)
p*=(float)(i-1)/i;
}
if (n>1)
p*=(float)(n-1)/n;
printf("%f",p);
}
void citire()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
}
int main()
{
citire();
ciur();
return 0;
}
