Cod sursa(job #635038)

Utilizator deneoAdrian Craciun deneo Data 18 noiembrie 2011 11:47:13
Problema Mins Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <algorithm>
using namespace std;

#define unusable -100000

long long d[10000001], n, m, sol;

int main()
{
    long long i, j;
    ifstream f("mins.in");
    ofstream g("mins.out");
    f >> n >> m;
    --n; --m;
    for(i = 2; i <= min(n, m); ++i)
        if(d[i] == 0)
        {
            for(j = i * i; j <= min(n, m); j += i * i)
                d[j] = unusable;
            for(j = i; j <= min(n, m); j += i)
                ++d[j];
        }
    for (i = 1; i <= min (n, m); i ++)
		if (d[i] > 0)
			if (d[i] & 1)
				sol = sol - (long long)(n / i) * (m / i);
			else
				sol = sol + (long long)(n / i) * (m / i);
    g << sol + n * m << '\n';
    g.close();
    return 0;
}