Cod sursa(job #1417262)

Utilizator akaprosAna Kapros akapros Data 9 aprilie 2015 23:16:38
Problema Mins Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
#define Nmax 1000005
using namespace std;
int i,j,v[Nmax];
bool w[Nmax];
long long sol,c,d,n;
int main()
{
    freopen("mins.in","r",stdin);
    freopen("mins.out","w",stdout);
    scanf("%lld %lld",&c,&d);
    --c; --d;
    sol=c*d*1LL;
    n=min(c,d);
    for (i=2;i<=n;i++)
    if (!v[i])
    {
        for (j=i;j<=n;j+=i) ++v[j];
        if (i*i>n || i*i<0) continue;
        for (j=i*j;j<=n;j+=i*i) w[j]=1;
    }
    for (i=2;i<=n;i++)
    if (!w[i] && v[i]%2==1)
    sol=sol-((c/i)*(d/i)*1LL);
    else if (!w[i]) sol=sol+((c/i)*(d/i)*1LL);
    printf("%lld",sol);
    return 0;
}