Cod sursa(job #53397)

Utilizator peanutzAndrei Homorodean peanutz Data 21 aprilie 2007 22:58:02
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#include <math.h>
#include <memory.h>

#define NMAX 1000100

long n;
int prim[NMAX];

long long solve()
{
	long i, j, k;
	long long nr = n;

	for(i = 2; i <= n; ++i)
	{
		for(j = 2, ++nr; j <= n; ++j)
		{
			if(!prim[j] && (((i % j) == 0) || (j % i == 0)))
			{
				prim[j] = 1;

				for(k = j+j; k <= n; k += j)
					prim[k] = 1;
			}
			else if(!prim[j])
				++nr;

			prim[j] = 0;
		}
	}
	return nr;
}

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

	scanf("%ld\n", &n);

	printf("%lld\n", solve());

	fclose(stdin);
	fclose(stdout);

	return 0;
}