Pagini recente » Cod sursa (job #1579741) | Cod sursa (job #1264716) | Cod sursa (job #2571815) | Cod sursa (job #1947257) | Cod sursa (job #889909)
Cod sursa(job #889909)
#include <stdio.h>
#include <stdlib.h>
long long int fi(int n)
{
long long int result = n, i;
for(i=2;i*i <= n;i++)
{
if (n % i == 0) result -= result / i;
while (n % i == 0) n /= i;
}
if (n > 1) result -= result / n;
return result;
}
int main()
{
int i;
int n, start = 0;
long long int count;
FILE *f, *g;
f = fopen("fractii.in", "rt");
fscanf(f, "%i", &n);
fclose(f);
count = -1;
if(n>100000)
{
count = 6079301507;
start = 100000;
}
if(n>200000)
{
count = 24317197835;
start = 200000;
}
if(n>300000)
{
count = 54713496967;
start = 300000;
}
if(n>400000)
{
count = 97268414619;
start = 400000;
}
if(n>500000)
{
count = 151982079351;
start = 500000;
}
if(n>600000)
{
count = 218853953443;
start = 600000;
}
if(n>700000)
{
count = 297884379079;
start = 700000;
}
if(n>800000)
{
count = 389073894447;
start = 800000;
}
if(n>900000)
{
count = 492421165575;
start = 900000;
}
for(i=start;i<n;i++)
{
count+=2*fi(i+1);
}
g = fopen("fractii.out", "wt");
fprintf(g, "%lli", count);
fclose(g);
printf("%lli", count);
return 0;
}