Pagini recente » Cod sursa (job #2871830) | Cod sursa (job #709660) | Cod sursa (job #2607813) | Cod sursa (job #2778884) | Cod sursa (job #193504)
Cod sursa(job #193504)
#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;
}