Cod sursa(job #1571054)

Utilizator morosanucipiMorosanu Cipi morosanucipi Data 17 ianuarie 2016 01:25:26
Problema Fractii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int prim(int n)
{
    int d;
    for(d=2; d<=sqrt(n)+0.001; d++)
        if(n%d==0)
            return 0;
    return 1;
}
int divizor(int n,int t)
{
    int d;
    int s=0,k=0;
    int p=1;
    if(prim(n))
        return t/n;
    if(n%2==0)
    {
        s+=t/2;
        p=p*2;
        k++;
    }
    if(n%3==0)
    {
        s+=t/3;
        p=p*3;
        k++;
    }
    for(d=4; d<=n/2; d++)
        if(n%d==0&&prim(d))
        {
            s+=t/d;
            p=p*d;
            k++;
        }
    if(k>1)
        s=s-t/p;
    if(k==0)
        s=1;
    return s;
}
int main()
{
    FILE * f = fopen("fractii.in","r");
    // FILE * g = fopen("fractii.out","w");
    int n,i,j;
    long long s;
    fscanf(f,"%d",&n);
    s=n*n;
    s=s-n/2-n/3;
    for(i=4; i<=n; i++)
    {
        s=s-divizor(i,n);
    }
    printf("%d",s);
    return 0;
}