Cod sursa(job #2839104)

Utilizator betybety bety bety Data 25 ianuarie 2022 12:00:12
Problema Mins Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("mins.in");
ofstream out("mins.out");
typedef long long ll;
const int lim=1e6+4;
bool ok[lim];
int prod[lim];
int cnt[lim];
int c,d;
ll el;
int main()
{
    in>>c>>d; --c,--d;
    if(c>d) swap(c,d);
    for(int i=1;i<=c;++i)
        prod[i]=1;
    for(int i=2;i<=c;++i)
    {
        if(!ok[i])
        {
            for(int j=i;j<=c;j+=i)
                ok[j]=true,
                prod[j]*=i,
                ++cnt[j];
        }
        if(prod[i]==i)
        {
            if(cnt[i]%2==1)
                el+=1LL*(c/i)*(d/i);
            else el-=1LL*(c/i)*(d/i);
        }
    }
    out<<1LL*c*d-el<<'\n';
    return 0;
}