Cod sursa(job #2408459)

Utilizator FrostfireMagirescu Tudor Frostfire Data 17 aprilie 2019 23:15:04
Problema Mins Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <iostream>
#define NMAX 1000100

using namespace std;

ifstream f("mins.in");
ofstream g("mins.out");

int c, d, n, cn[NMAX];
long long sol;
bool cp[NMAX];

void ciur()
{
   for(int i=2; i<=n; i++)
    {   if(!cn[i])
            {   for(int j=i; j<=n; j+=i) cn[j]++;
                long long k = 1LL * i * i;
                for(long long j=k; j<=n; j+=k) cp[j]=1;
            }
        if(!cp[i])
            {   long long val = 1LL * (c/i) * (d/i);
                if(!(cn[i] & 1)) sol += val;
                else sol -= val;
            }
    }
}

int main()
{
    f >> c >> d;
    c--;
    d--;
    n = min(c, d);
    sol = 1LL * c * d;
    ciur();
    //for(int i=1; i<=n; i++) cout << cn[i] << ' ' << cp[i] << '\n';
    g << sol << '\n';
    return 0;
}