Cod sursa(job #2069834)

Utilizator silkMarin Dragos silk Data 18 noiembrie 2017 21:04:29
Problema Mins Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
#define MaxN 1000000
using namespace std;

int type[MaxN+1];

int main(){
    FILE* fin = fopen("mins.in","r");
    FILE* fout = fopen("mins.out","w");

    int i,j,N,M;
    long long res = 0;

    fscanf(fin,"%d %d",&N,&M);
    --N; --M;

    for(i = 2; i <= min(N,M); ++i)
    if(type[i] >= 0)
    {
        if(!type[i] || type[i] % 2) res += 1LL * (N / i) * (M / i);
        else res -= 1LL * (N / i) * (M / i);

        if(!type[i])
            for(j = i; j <= min(N,M); j += i) ++type[j];

        if(i <= 1000)
            for(j = i*i; j <= min(N,M); j += i*i) type[j] = -(1<<30);
    }

    fprintf(fout, "%lld\n", 1LL * N * M - res);


return 0;
}