Cod sursa(job #349141)

Utilizator shnakoVlad Schnakovszki shnako Data 18 septembrie 2009 10:33:53
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <math.h>
FILE *f=fopen("fractii.in", "r"), *g=fopen("fractii.out", "w");
long n, i, j, x=1, h, z, v[100000];
bool t[1000003], sw;


void citeste(void)
{
	fscanf(f, "%ld", &n);
}

void rezolva(void)
{
	for (i=1;i<=n;i++)
		for (j=1;j<=n;j++)
		{
			if(i==j)
				continue;
			sw=0;
			for (h=1;h<=z&&v[h]<=j;h++)
				if (i%v[h]==0&&j%v[h]==0)
				{
					sw=1;
					break;
				}
			if (!sw)
				x++;
		}
}

void ciuruieste(void)
{
	for (i=3;i<=sqrt(n);i+=2)
		for (j=2;j<=n/i;j++)
			t[i*j]=1;
}

void aranjeaza(void)
{
	z=3;
	v[1]=2;
	v[2]=3;
	for (i=3;i<=n;i+=2)
		if (!t[i])
			v[z++]=i;
	z--;
}
					
void tipareste(void)
{
	fprintf (g, "%ld", x);
}

int main(void)
{
	citeste();
	ciuruieste();
	aranjeaza();
	rezolva();
	tipareste();
	return 0;
}