Pagini recente » Cod sursa (job #1466010) | Cod sursa (job #163149) | Cod sursa (job #1895363) | Cod sursa (job #2156102) | Cod sursa (job #2167513)
#include<bits/stdc++.h>
using namespace std;
ifstream f("mins.in");
ofstream g("mins.out");
bool pr[1000002];
int a,b,val;
struct arr
{
int v[8];
};
arr vv[1000002];
void ciur(int UB)
{
for(int i=2;i<=UB;++i)
if(!pr[i])
for(int j=i;j<=UB;j+=i)
{
pr[j]=1;
vv[j].v[0]++;
val=vv[j].v[0];
vv[j].v[val]=i;
}
}
int main()
{
f>>a>>b;
--a;
--b;
ciur(a);
long long ss=1LL*a*b;
for(int R=2;R<=a;++R)
for(int i=1;i<(1<<vv[R].v[0]);++i)
{
int pr=1;
int nrb=0;
for(int j=vv[R].v[0]-1;j>=0;--j)
if(i&(1<<j))
pr*=vv[R].v[j+1],++nrb;
if(nrb&1)
ss-=b/pr;
else
ss+=b/pr;
}
g<<ss<<'\n';
return 0;
}