Cod sursa(job #2839105)
| Utilizator | Data | 25 ianuarie 2022 12:02:18 | |
|---|---|---|---|
| Problema | Mins | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("mins.in");
ofstream out("mins.out");
typedef long long ll;
const int lim=1e6+4;
bool ok[lim];
bool lpp[lim];
int cnt[lim];
int c,d;
ll el;
int main()
{
in>>c>>d; --c,--d;
if(c>d) swap(c,d);
for(int i=2;i<=c;++i)
{
if(!ok[i])
{
for(int j=i;j<=c;j+=i)
ok[j]=true,
++cnt[j];
ll k=1LL*i*i;
for(ll u=k;u<=c;u+=k)
lpp[u]=true;
}
if(!lpp[i])
{
if(cnt[i]%2==1)
el+=1LL*(c/i)*(d/i);
else el-=1LL*(c/i)*(d/i);
}
}
out<<1LL*c*d-el<<'\n';
return 0;
}
