Cod sursa(job #1070101)

Utilizator gabriel.badeaGabriel Badea gabriel.badea Data 30 decembrie 2013 23:18:19
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <malloc.h>
using namespace std;

int gcd(int a, int b)
{
	if(!b)
		return a;
	return gcd(b, a%b);
}

int main()
{
	int N, multipli_j, nr = 0;
	int *multipli;

	freopen("fractii.in", "r", stdin);
	freopen("fractii.out", "w", stdout);

	cin >> N;

	multipli = new int[N];

	for(int i = 1; i <= N; ++i)
		multipli[i] = 1;

	for(int i = 1; i <= N; ++i)
	{
		for(int j = 1; j <= N; ++j)
		{
			if(gcd(i, j) == 1 && multipli[j])
				nr++;
			else
			{
				multipli_j = j;
				for(multipli_j = j + j; multipli_j <= N; multipli_j += j)
					multipli[multipli_j] = 0;
			}
		}
		for(int k = 1; k <= N; ++k)
			multipli[k] = 1;
	}
	
	cout << nr << endl;
	return 0;
}