Cod sursa(job #707849)

Utilizator impulseBagu Alexandru impulse Data 6 martie 2012 07:44:31
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#define ifile "fractii.in", "r"
#define ofile "fractii.out", "w"

FILE *f=fopen(ifile), *g=fopen(ofile);
typedef unsigned long long ulong;
int n, *A;

int ciur(int n){
	int i, j;
	for(i = 1; i <= n; ++i){
		A[i] = i;
	}

	for(i = 2; i <= n; ++i){
		if(A[i] == i){
			for(j = i; j<=n; j+=i){
                A[j] /= i, A[j] *= (i-1);
			}
		}
	}
	return 0;
}


ulong getCount(int n)
{
    ulong count = 0;
    for(int i = 2; i <= n; ++i)
        count += A[i];
    return 1 + 2 * count;
}

int main()
{
    fscanf(f, "%d", &n);
    A = new int[n+3];
    ciur(n);
    ulong val = getCount(n);
    fprintf(g, "%lld", val);
    return 0;
}