Cod sursa(job #51107)

Utilizator MirageRobert Sandu Mirage Data 9 aprilie 2007 22:42:20
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
#include<string.h>
#include<math.h>
int main () {
	long long n,i,j,p;
	char c[1001];
	long long s=0;
	FILE *in=fopen("fractii.in","r"), *out=fopen("fractii.out","w");
	fscanf(in,"%lld",&n);
	memset(c,1,1001*sizeof(c[0]));
	c[0]=0;
	c[1]=0;
	for(i=2;i<=5;i++)
		if(c[i])
			for(j=i+i;j<=n;j+=i)
				c[j]=0;
	for(i=2;i<=n;i++){
		p=0;
		if(c[i])
			s+=i-1;
		else{
			p=i;
			for(j=2;j+j<=n;j++)
				if(c[j]==1&&i%j==0)
					p=p-p/j;
			s+=p;
		}
	}
	s=1+2*s;
	fprintf(out,"%lld\n",s);
	fclose(in);
	fclose(out);
	return 0;
}