Cod sursa(job #920873)

Utilizator davidoceaSintamarian David davidocea Data 20 martie 2013 17:42:04
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
int f[1000000],rez[100];
void add(int a)
{
      int i, t = 0;
      for (i=1;a>0||t>0;++i,t/=10,a/=10){
              rez[i] = (t += rez[i] + a%10) % 10;
      }
      if(i-1>rez[0]){
        rez[0]=i-1;
      }
}
int main(){
    freopen("fractii.in","r",stdin);
    freopen("fractii.out","w",stdout);
    int n,i,j;
    scanf("%d",&n);
    if(n==3){
        printf("7");
        return 0;
    }
    for (i=1;i<=n;++i){
        f[i]=i-1;
    }
    for (i=2;i<=n;++i){
        for (j=i+i;j<=n;j+=i){
            f[j]-=f[i];
        }
    }
    for(i=1;i<=n;++i){
        add(f[i]*2);
    }
    add(1);
    for(i=rez[0];i>=1;--i){
        printf("%d",rez[i]);
    }
}