Cod sursa(job #2138178)

Utilizator banutraul1234567Banut Raul Emanuel banutraul1234567 Data 21 februarie 2018 13:53:55
Problema Fractii Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <stdlib.h>

FILE *f,*g;
int prim(int a)
{
    int i;
    for(i=2;i<=sqrt(a);i++)
        if(a%i==0)
            return 0;
    return 1;
}
int main()
{
    int i,m,w=0,k=0,p[10000],pw[10000],n,fi,nr=0,j;
    f=fopen("fractii.in","r");
    g=fopen("fractii.out","w");
    fscanf(f,"%d",&n);
    for(j=n;j>1;j--){
        m=j;
        k=0;
        fi=1;
        if(prim(j)==1)
            fi=j-1;
        else
        {
            for(i=2;m!=1;i++){
                if(m%i==0){
                    while(m%i==0){
                        m/=i;
                        w++;
                    }
                    fi*=(i-1)*pow(i,w-1);
                    w=0;
                }
            }
        }
            nr+=fi*2;
    }
    nr++;
    fprintf(g,"%d",nr);
    return 0;
}