Pagini recente » Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #87335) | Cod sursa (job #2537622) | Cod sursa (job #220980)
Cod sursa(job #220980)
#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;
}