Cod sursa(job #2952238)
Utilizator | Gabriel Stefan Tita gabriel.9619 | Data | 8 decembrie 2022 20:34:21 |
---|---|---|---|
Problema | Mins | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <fstream>
using namespace std;
ifstream fin("mins.in");
ofstream fout("mins.out");
long long nr, x;
int c[1000001], ok[1000001], nrd[1000001];
int main()
{
int a, b, i, j, n;
fin>>a>>b;
a--;
b--;
n=min(a, b);
for(i=2;i<=n;i++)
{
if(c[i]==0)
{
for(j=i+i;j<=n;j+=i)
{
c[j]=1;
nrd[j]++;
if(j%(i*i)==0)
{
ok[j]=1;
}
}
nrd[i]=1;
}
if(ok[i]==0)
{
x=(a/i)*1LL*(b/i);
if(nrd[i]%2==1)
{
nr+=x;
}
else
{
nr-=x;
}
}
}
nr=a*1LL*b-nr;
fout<<nr;
}