Cod sursa(job #2468975)

Utilizator Radu2914Vaduva Radu-Andrei Radu2914 Data 6 octombrie 2019 12:49:25
Problema Fractii Scor 10
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <stdio.h>
#include <stdlib.h>

unsigned long int cmmdc(unsigned long int a,unsigned long int b);

int main()
{
    FILE *fractii_in=fopen("fractii.in","r");
    FILE *fractii_out=fopen("fractii.out","w");

    unsigned long int p,q,n,counter;

    fscanf(fractii_in,"%lu",&n);

    if(n<1 || n>1000000)
    {
        exit(-1);
    }

    counter=0;

    for(p=1;p<=n;p++)
    {
        for(q=1;q<=n;q++)
        {
            if((p==1 && q==1) || q==1)
            {
                counter++;
            }
            else
            {
                if(p%q!=0 && cmmdc(p,q)==0)
                {
                    counter++;
                }
            }
        }
    }

    fprintf(fractii_out,"%lu",counter);

    fclose(fractii_in);
    fclose(fractii_out);

    return 0;
}

unsigned long int cmmdc(unsigned long int a,unsigned long int b)
{
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
        }
        else
        {
            b=b-a;
        }
    }

    if(a==1)
    {
        return 0;
    }
    else
    {
        return a;
    }
}