Cod sursa(job #3330264)

Utilizator DunareTanasescu Luca-Ioan Dunare Data 18 decembrie 2025 12:44:32
Problema Mins Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
using namespace std;
const int MAX=1000001;
ifstream f("mins.in");
ofstream g("mins.out");
int ciurn[MAX],
    ciurp[MAX],
    c,d,n;
long long card;

void calcul(int i)
{
    if(ciurn[i]==0)
    {
        for(int j=i; j<=n; j+=i)
        {
            ciurn[j]++;
        }
        long long k = 1LL * i * i;
        for(long long jj=k; jj<=n; jj+=k)
            ciurp[jj]=1;
    }
    if(ciurp[i]==0)
    {
        long long t=1LL*(c/i)*(d/i);
        if(ciurn[i]%2==0)
            card-=t;
        else
            card+=t;
    }
}

int main()
{
    f>>c>>d;
    c--,d--;
    n = min(c,d);
    for(int i=2; i<=n; i++)
    {
        calcul(i);
    }
    g<< 1LL * c * d -card;
    return 0;
}