Cod sursa(job #220980)

Utilizator stocarulCosmin-Mihai Tutunaru stocarul Data 13 noiembrie 2008 22:10:47
Problema Fractii Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#define infile "fractii.in"
#define outfile "fractii.out"
#define nmax 1000*1000+1
int v[nmax]; //vectorul pe care il folosim pentru ajutor
int n; //numarul n
long long nr=1; //variabila in care salvam numarul total de fractii

int main()
{
int i,j;
//citire
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
scanf("%d",&n); //citim n

for(i=1;i<=n;v[i]=i++); //umplem v[i]=i

for(i=2;i<=n;i++) //luam fiecare numar in parte
	if(v[i]==i) //daca e numar prim
		for(j=i;j<=n;j+=i) //multiplii lui i, deci numere neprime
			v[j]=v[j]/i*(i-1);

for(i=2;i<=n;i++) //fiecare numar in parte
	nr+=2*v[i]; //numarul total de fractii

printf("%lld",nr); //scriem in fisier

//inchidem
fclose(stdin);
fclose(stdout);
return 0;
}