Cod sursa(job #3220253)

Utilizator iusty64Iustin Epanu iusty64 Data 2 aprilie 2024 22:34:08
Problema Mins Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
#include <iostream>

using namespace std;
const int Vmax = 1000001;
int c, d;
bool bad[Vmax];
int cnt[Vmax];
int main(){
    ifstream fin("mins.in");
    ofstream fout("mins.out");
    fin>>c>>d;
    c--;
    d--;
    long long sol=1LL*c*d;
    for(int k=2;k<=min(c, d);k++){
        if(cnt[k]==0){
            for(int j=k;j<=min(c, d);j+=k)
                cnt[j]++;
            for(int o=k*k;o<=min(c, d);o+=k*k){
                if(o<0)
                    continue;
                bad[o]=1;
            }
        }
    }
    for(int k=2;k<=min(c, d);k++){
        if(bad[k]) continue;
        if(cnt[k]%2){
            sol-=1LL*((c/k)*(d/k));
        }
        else
            sol+=1LL*((c/k)*(d/k));
    }
    fout<<sol;
}