Pagini recente » Cod sursa (job #177531) | Cod sursa (job #37464) | Cod sursa (job #2016236) | Clasament simulare_oji_2023_clasa_10_13_martie | Cod sursa (job #50314)
Cod sursa(job #50314)
#include<stdio.h>
FILE *f=fopen("fractii.in","r"), *g=fopen("fractii.out","w");
long long n,s=1;
char v[1000000];
void prim(int i) {
long long d=2,bun=1;
if(i%d==0) bun=0;
d=3; while(bun && d<=i/2) {
if(i%d==0) bun=0;
d+=2;
}
if(i==2) bun=1;
v[i]=bun;
}
void calcul(long long i) {
if(v[i]==1) s+=2*i-2;
else {
long long p=i;
for(long j=2;j<i;j++)
if(v[j]==1 && i%j==0) p=p*(j-1)/j;
s+=2*p;
}
}
int main() {
fscanf(f,"%ld",&n);
for(long i=2;i<=n;i++) {
prim(i);
calcul(i);
}
fprintf(g,"%ld",s);
fclose(f);
fclose(g);
return 0;
}