Cod sursa(job #275567)

Utilizator alexandru92alexandru alexandru92 Data 10 martie 2009 15:53:16
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include<stdio.h>
#include<stdlib.h>
long n,phi[2000001],i,j;
int main()
  {
   freopen("ciur.in","rt",stdin);
   freopen("ciur.out","wt",stdout);
   scanf("%d",&n);
   for(i=1;i<=n;++i) phi[i]=i;
   for(i=2;i<=n;++i)
      if(phi[i]==i)
        for(j=i;j<=n;j+=i)
            if(j<=n)
               phi[j]/=i,phi[j]*=(i-1);
   printf("%d\n",phi[n]);
   system("PAUSE");
   return 0;
  }