Pagini recente » Cod sursa (job #3123668) | Cod sursa (job #1937502) | Cod sursa (job #1108090) | Cod sursa (job #3178949) | Cod sursa (job #1387675)
#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();
}