Cod sursa(job #707851)

Utilizator impulseBagu Alexandru impulse Data 6 martie 2012 07:45:19
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 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;
}