Cod sursa(job #58597)
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int divizor(int a,int b)
{
int x1;
int diviz=1;
if(a>b)
{
for(x1=1; x1<=b; x1++)
{
if(a%x1==0 && b%x1==0)
{
diviz=x1;
}
}
}
else
{
for(x1=1; x1<=a; x1++)
{
if(a%x1==0 && b%x1==0)
{
diviz=x1;
}
}
}
return diviz;
}
int main()
{
FILE *fdeschis,*f;
fdeschis=fopen("fractii.out","w");
f=fopen("fractii.in","r");
int n;
fscanf(f,"%d",&n);
int nr_fractii=1;
int i;
int k,j;
for(i=1; i<=n; i++)
{
j=1;
k=i;
while(j<k)
{
if((j%2!=0 && k%2!=0 )|| (j!=k))
{
if(divizor(k,j)==1)
{
nr_fractii+=2;
}
}
j++; k--;
}
}
for(i=2; i<=n-1; i++)
{
j=n;
k=i;
while(j>k)
{
if((j%2!=0 && k%2!=0 )|| (j!=k))
{
if(divizor(k,j)==1)
{
nr_fractii+=2;
}
}
j--;
k++;
}
}
fprintf(fdeschis,"%d",nr_fractii);
fclose(fdeschis);
fclose(f);
return 0;
}