Cod sursa(job #2579443)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 12 martie 2020 14:48:01
Problema Mins Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

ifstream f("mins.in");
ofstream g("mins.out");

int n,m,nr[1000005],ciur[1000005],minim,maxim,cap;
long long sum;

int main()
{
f>>n>>m;
n--; m--;
minim=min(n,m); maxim=max(n,m);
for(int i=2;i<=minim;i++)
  ciur[i]=1;
sum+=1LL*(maxim-1)*(maxim)/2-1LL*(maxim-minim)*(maxim-minim+1)/2+1LL*(minim-2)*(minim-1)/2+1LL*(n+m-1);
for(int i=2;i<=minim;i++)
 {
  if(ciur[i]==1)
    for(int j=i;j<=minim;j+=i)
     {
      ciur[j]*=i;
      nr[j]++;
     }
  if(ciur[i]==i)
   {
    cap=maxim/i-minim/i;
    if(nr[i]%2==1)
    {
    sum-=1LL*(maxim/i)*(maxim/i+1)/2-1LL*cap*(cap+1)/2;
    sum-=1LL*(minim/i-1)*(minim/i)/2;
    }
    else
    {
    sum+=1LL*(maxim/i)*(maxim/i+1)/2-1LL*cap*(cap+1)/2;
    sum+=1LL*(minim/i-1)*(minim/i)/2;
    }
   }
 }
g<<sum;
}