Pagini recente » Cod sursa (job #109864) | Cod sursa (job #1264648) | Cod sursa (job #2173746) | Cod sursa (job #2943784) | Cod sursa (job #216874)
Cod sursa(job #216874)
#include<iostream>
#include<stdio.h>
FILE *f,*g;
unsigned long long n,nr=1;unsigned long long st[1000000000];
long cmmdc(long a,long b)
{
if(!b) return a;
else
return cmmdc(b,a%b);
}
int valid(int p)
{
unsigned short ok=1;
if(st[p-1]==st[p])
ok=0;
long c;
c=cmmdc(st[p],st[p-1]);
if(st[p-1]!=0)
if(!(st[p]%c)&&!(st[p-1]%c)&&c!=1)
if(st[p]!=1&&st[p-1]!=1)
ok=0;
return ok;
}
void back(int p)
{
for(unsigned long long pval=1;pval<=n;pval++)
{
st[p]=pval;
if(valid(p))
if(p==2)
nr++;
else
back(p+1);
}
}
int main()
{
f=fopen("fractii.in","r");
g=fopen("fractii.out","w");
fscanf(f,"%ld",&n);
st[0]=0;
back(1);
fprintf(g,"%ld",nr);
return 0;
}