Cod sursa(job #648425)

Utilizator geobarosanu1Tutuianu George geobarosanu1 Data 13 decembrie 2011 14:40:16
Problema Fractii Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
int a[1000000];
int ciur (int x,long n,int a[1000000]){
	int nr=x,i,j,ok;
	
	for (i=2;i<=x;i++){
		ok=1;
		for (j=i;j<=x && ok;j+=i){
			if (j==x)
				ok=0;
		}

		if (!ok && !a[i])
			nr-=nr/i;
	}

	return nr;
}

int calculare(long n,int a[1000000]){
	int nr=0,i,j;

	for (i=2;i<=n;i++){
		for (j=2*i;j<=n;j+=i)
			a[j]=1;
		nr+=ciur(i,n,a);
	}

	return 2*nr+1;
}

int main()
{
	FILE* f=fopen("fractii.in","r");
	FILE* g=fopen("fractii.out", "w");
	long n,i,j;

	fscanf(f,"%d", &n);
	fprintf(g,"%d",calculare(n,a));

	fclose(f);
	fclose(g);
	return 0;
}