Pagini recente » Cod sursa (job #815115) | Cod sursa (job #1871200) | Cod sursa (job #1116169) | Cod sursa (job #2075553) | Cod sursa (job #2708407)
#include <stdio.h>
#include <stdlib.h>
int cmmdc(int a, int b){
while(b){
int r=a%b;
a=b;
b=r;
}
return a;
}
void numar(int N, int *nrfractii){
int *v=(int*)malloc((N+1)*sizeof(int));
int x=0;
int i, j;
for(i=1; i<=N; i++)
v[i]=i;
for(i=2; i<=N; i++)
if(v[i]==i){
v[i]--;
for(j=2; j*i<=N; j++)
v[j*i]=v[j*i]/i*(i-1);
}
for(i=1; i<=N; i++)
x+=v[i];
*nrfractii=x;
free(v);
}
int main(){
int N, nrfractii;
FILE *f;
f=fopen("fractii.in", "r");
fscanf(f, "%d", &N);
fclose(f);
numar(N, &nrfractii);
nrfractii=nrfractii*2-1;
f=fopen("fractii.out", "w");
fprintf(f, "%d", nrfractii);
fclose(f);
return 0;
}