Pagini recente » Cod sursa (job #1376168) | Cod sursa (job #789996) | Cod sursa (job #956341) | Cod sursa (job #995377) | Cod sursa (job #966274)
Cod sursa(job #966274)
#include<cstdio>
using namespace std;
int i,j,n,m,mi;
long long phi[1000009];
long long calc(int n,int m)
{
if(n>m) return calc(m,n);
if(n==0) return 0;
return phi[n]*(m/n)+calc(n,m%n);
}
int main()
{
freopen("mins.in","r",stdin);
freopen("mins.out","w",stdout);
scanf("%d",&n);
scanf("%d",&m);
n--;m--;
mi=n;
if(m<mi) mi=m;
for(i=1;i<=mi;i++)
phi[i]=i;
for(i=2;i<=mi;i++)
if(phi[i]==i)
{
for(j=i;j<=mi;j+=i)
{
phi[j]/=i;
phi[j]*=(i-1);
}
}
for(i=2;i<=mi;i++)
phi[i]*=2;
for(i=2;i<=mi;i++)
phi[i]+=phi[i-1];
printf("%lld\n",calc(n,m));
return 0;
}