Cod sursa(job #193504)

Utilizator carloneIoan-Carol Plangu carlone Data 4 iunie 2008 19:39:54
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include"stdio.h"
#include"stdint.h"
#include <cstdlib>
long x;
long out,v[2000],vv;

long cm(const long a,const long b)
{
     for(int g=1;g<=vv;g++)if((a/v[g])*v[g]==a && (b/v[g])*v[g]==b)return 0;
     return 1;     
}
int val(const int_fast32_t x,const int_fast32_t y)
{
     if(!x||!y)return 0;
     if(cm(x,y)==1)return 1;
     return 0;
}
int prim(int g)
{
    for(int l=1;l<g;l++)if(v[g]%v[l]==0)return 0;
    return 1;
}
void gen_prime(int p_no)
{v[1]=2;
for(int g=2;v[g]<=p_no;g++)
{
 v[g]=v[g-1]+1;
 while(!prim(g))
  v[g]++;
 vv++;
}
}

int main()
{
    
    freopen("fractii.out","w",stdout);
    freopen("fractii.in","r",stdin);
    scanf("%ld",&x);gen_prime(x);
    for(int_fast32_t g=0;g<(x+1)*(x+1)-1;g++){out+=val(g%(x+1),(g+1)/(x+1));}
    printf("%ld",out);
    return 0;
}