Pagini recente » Cod sursa (job #2752227) | Cod sursa (job #1128725) | Cod sursa (job #3171497) | Cod sursa (job #1553220) | Cod sursa (job #1210249)
#include <fstream>
#include <math.h>
using namespace std;
int a[1000],b[1000];
int o,w,t,q,f,n,fractii,i,j;
FILE*fin=fopen("fractii.in","r");
FILE*fout=fopen("fractii.out","w");
int divi(int k, int l)
{
w=0;
//fprintf(fout,"%d %d\n",k,l);
for (o=2;o<=(k/2);o++)
{
if (k%o==0)
{
a[w]=o;
//fprintf(fout,"%d ",a[w]);
w++;
while (k%o==0 && k>1)
k=k/o;
}
}
if (k!=1 || w==0)
{
a[w]=k;
//fprintf(fout,"%d ",a[w]);
w++;
}
//fprintf(fout,"\n");
q=0;
for (o=2;o<=(l/2);o++)
{
if (l%o==0)
{
b[q]=o;
//fprintf(fout,"%d ",b[q]);
q++;
while (l%o==0 && l>1)
l=l/o;
}
}
if (l!=1 || q==0)
{
b[q]=l;
//fprintf(fout,"%d ",b[q]);
q++;
}
//fprintf(fout,"\n");
t=0;
for (o=0;o<w && t==0;o++)
{
for (f=0;f<q && t==0;f++)
{
if (a[o]==b[f])
t=1;
}
}
//fprintf(fout,"\n");
if (t==1)
return 0;
else
return 1;
}
int main()
{
fscanf(fin,"%d",&n);
fractii=0;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
if (i!=j)
{
if (divi(i,j))
{
fractii++;
// fprintf(fout,"%d %d\n",i,j);
}
}
}
}
fractii++;
fprintf(fout,"%d",fractii);
}