Cod sursa(job #1387675)

Utilizator vlad_andrei.ursuUrsu Vlad-Andrei vlad_andrei.ursu Data 14 martie 2015 16:02:06
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <iostream>
#include <climits>
#include <cmath>
#include <fstream>
#define MAX 1000000
using namespace std;

int auxiliary[MAX];
int prime[MAX];

void init(int n){

    for (int i = 2; i <= n; i++){
        auxiliary[i] = 1;
        prime[i] = i;
    }
}

int prime_numbers(int n){
    int index = 0;
    int limit = sqrt(n);

    for (int i = 2; i <= n; i++){
        if (auxiliary[i] == 1){

            prime[i] = i-1;
            for (int j = i*2; j <= n; j = j + i){
                auxiliary[j] = 0;
                prime[j] = prime[j] * (i-1)/i;
            }
        }
    }

    return 0;
}


int number_of_fractions(int n, int number_primes){
    long long contor = 0;
    int part_contor = 0;
    int index_prime;

    for (int i = 2; i <= n; i++){
        contor += prime[i];
    }
    return (contor * 2 + 1);

}

int main(void){


    int number_primes = 0;
    long long result = 0;
    int n;

    ifstream in;
    ofstream out;

    in.open("fractii.in");
    out.open("fractii.out");

    in >> n;

    n = 1000;
    init(n);
    number_primes = prime_numbers(n);

    /*
    for (int i = 2; i <= n; i++)
      cout << i << " " << prime[i] << " ||| ";
    */
    result = number_of_fractions(n, number_primes);
    cout << "\n" << result;
    out << result;

     in.close();
    out.close();
}