Cod sursa(job #2521922)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 11 ianuarie 2020 18:43:39
Problema Mins Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

using namespace std;
ifstream in("mins.in");
ofstream out("mins.out");
int mo[1000001];
bool ciur[1000001];
int ans[1000001];
int main()
{
    int n,m,i,j;
    long long rez(0);
    in>>n>>m;
    n--;
    m--;
    ciur[1]=ciur[0]=1;
    for(i=2; i*i<=n; i++)
    {
        if(ciur[i]==0)
        {
            for(j=i*i; j<=n; j+=i)
            {
                ciur[j]=1;
            }
        }
    }
    for(i=1; i<=1000000; i++)
    {
        mo[i]=-1;
    }
    for(i=2; i*i<=n; i++)
    {
        for(j=i*i; j<=n; j+=i*i)
        {
            mo[j]=0;
        }
    }
    for(i=2; i<=n; i++)
    {
        if(ciur[i]==0)
        {
            for(j=i; j<=n; j+=i)
            {
                mo[j]=-mo[j];
            }
        }
    }
    for(i=2; i<=n; i++)
    {
        rez=rez+(n/i)*(m/i)*mo[i];
    }
    out<<(n*m)-rez<<'\n';
    return 0;
}