Pagini recente » Cod sursa (job #92990) | Cod sursa (job #2580769) | Cod sursa (job #657289) | Cod sursa (job #2214842) | Cod sursa (job #2097491)
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <stdint.h>
typedef unsigned int uint;
uint64_t phi(uint n);
int main(void)
{
FILE *in = fopen("fractii.in", "r");
FILE *out = fopen("fractii.out", "w");
if(in != NULL && out != NULL)
{
uint n, i = 1, res = 0;
fscanf(in, "%u%*c", &n);
for(; i <= n; i++)
{
res += phi(i);
}
fprintf(out, "%llu\n", (2 * res - 1));
fclose(in);
fclose(out);
}
else
{
printf("Error\n");
}
return 0;
}
uint64_t phi(uint n)
{
uint64_t result = n;
uint i = 2;
for(; i * i <= n; i++)
{
if(n % i == 0)
{
while(n % i == 0)
{
n /= i;
}
result -= result / i;
}
}
if(n > 1)
{
result -= result / n;
}
return result;
}