Cod sursa(job #1540362)

Utilizator ancabdBadiu Anca ancabd Data 2 decembrie 2015 18:08:35
Problema Mins Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
#include<algorithm>

using namespace std;

ifstream  fin ("mins.in");
ofstream fout ("mins.out");

#define MAX 1000000

long long sol;
int ciur[MAX+1], c, d, lmax;
bool put[MAX+1];

int main()
{
    fin >> c >> d;

    c--;
    d--;
    lmax = min(c, d);
    sol = 1LL * c * d;

    for (int i = 2; i <= lmax; ++i )
    {
        if(!ciur[i])
        {
            int j;
            for (j = i; j <= lmax; j += i )
                ciur[j]++;
            if ( 1LL * i * i <= lmax )
                for (j = i * i; j <= lmax; j += i * i )
                    put[j] = true;
        }
    }
    for (int i = 2; i <= lmax; ++i )
        if ( put[i] == false )
        {
            if ( ciur[i] % 2)
                sol -= 1LL * (c / i) * (d / i);
            else
                sol += 1LL * (c / i) * (d / i);
        }

    fout << sol;
    return 0;
}