Cod sursa(job #1754440)

Utilizator eddie.deaconuDeaconu Stefan-Eduard eddie.deaconu Data 8 septembrie 2016 10:53:44
Problema Mins Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

int c, d;
int n, div[1000001], dif[1000001];

int main()
{
    ifstream f("mins.in");
    ofstream g("mins.out");
    f >> c >> d;
    long long card = 0;
    c--;
    d--;
    n = min(c, d);
    for(int i = 2; i <= n; i++)
    {
        if(div[i] == 0)
        {
            for(int j = i; j <= n; j += i)
                div[j]++;
            long long ii = 1LL * i * i;
            for(long long j = ii; j <= n; j += ii)
                dif[j] = 1;
        }
        if(dif[i] == 0)
        {
            long long t = 1LL * (c / i) * (d / i);
            if(div[i] % 2 == 0)
                card -= t;
            else
                card += t;
        }
    }
    cout<<1LL*c*d<<' '<<card;
    g << 1LL * c * d - card;
    f.close();
    g.close();
    return 0;
}