Cod sursa(job #547614)

Utilizator aleph0Ionut-Gabriel Radu aleph0 Data 6 martie 2011 15:43:07
Problema Fractii Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<stdlib.h>
#define DIM 1000001

int main(){
    FILE *f = fopen("fractii.in","r");
    FILE *g = fopen("fractii.out","w");
    int v[DIM], viz[DIM], rez = 0, n, i, j;
    fscanf(f,"%d",&n);
    for(i = 1; i <= n; i++){
        v[i] = i;
        viz[i] = 0;
    }
    for(i = 2; i <= n; i++){
        if(viz[i] == 0){
            v[i]--;
            for(j = 2; i * j <= n;j++){
                v[i * j] *= (float)(i - 1) / i;
                viz[i * j] = 1;
            }
        }
    }

    for(i = 1; i <= n; i++)
        rez += v[i];
    rez = rez * 2 - 1;
    fprintf(g,"%d", rez);
    for(i = 1; i <= n; i++)
        printf("%d ", v[i]);

    fclose(f);
    fclose(g);
    return 0;
}