Cod sursa(job #43911)

Utilizator FlorianFlorian Marcu Florian Data 30 martie 2007 17:27:52
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
#include<math.h>
long long v[1000001],k;
int tot(long n)
	{
	long i;
	long s=1;
	s=n;
	i=3;
	if (n%2==0) s=s-s/2;
	for (i=1;i<=k;i++) if (n%v[i]==0) s=s-s/v[i];
	return s;}

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