Cod sursa(job #58144)

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