Cod sursa(job #1253594)

Utilizator GrandmasterSoucup Bogdan Grandmaster Data 1 noiembrie 2014 15:17:31
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <utility>
#include <string>
#include <cstring>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <sstream>
#include <deque>
#include <bitset>
#include <complex>
#include <functional>
#include <memory>
#include <numeric>
#define x first
#define y second
typedef std::pair<int, int> pii;

using namespace std;
const int Max = 100000;
int k = 0, op[100], l = 2, y[Max];
void divprim(int n)
{
	int d = 2, p = 0;
	while(n != 1)
	{
		while(n%d == 0)
		{
			n /= d;
			p++;
		}
		if(p != 0)
		{
			op[l] = d;
			l++;
		}
		d++;
	}
	p = 0;
}
int erat(int n)
{
	divprim(n);
	for(int i = 2; i <= n; i++)
	{
		for(int j = op[i]; j <= n; j += op[i])
		{
			if(y[j] != 0)
				k++;
			y[j] = 1;
		}
	}
}

int main () {
	ifstream fin("fractii.in");
	ofstream fout("fractii.out");
	int n;
	fin >> n;
	for(int i = 1; i <= n; i++)
	{
		erat(i);
		l = 2;
	}
	fout << n * n - k;
	return 0;
}