Cod sursa(job #42984)

Utilizator FlorianFlorian Marcu Florian Data 29 martie 2007 18:15:41
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
#include<math.h>
long v[78500],k;
int tot(long n)
	{
	long i;
	long s=1;
	s=n;
	i=1;
	while (v[i]<=n)
	{
	if (n%v[i]==0) s=s-s/v[i];
	i++;}
	return s;}

int main()
{long nr,n,i,sol=0,j;
FILE*f=fopen("fractii.in","r");
FILE*g=fopen("fractii.out","w");
fscanf(f,"%ld",&n);
k=1;  v[1]=2;
for (i=3;i<=1000001;i=i+2)
	{nr=1;
	for (j=2;j<=sqrt(i);j++) if (i%j==0) {nr=0; break;}
	if (nr) {k++;v[k]=i;if (k==n) break;}}
sol=1;
for (i=2;i<=n;i++) sol+=2*tot(i);
fprintf(g,"%ld",sol);
fclose(f);
fclose(g);
return 0;}