Pagini recente » Cod sursa (job #238616) | Cod sursa (job #2707006) | Cod sursa (job #1642846) | Cod sursa (job #1492560) | Cod sursa (job #1791334)
#include <iostream>
#include<fstream>
using namespace std;
long long nrdiv[1000005],nr[1000005];
long long i,j,t,n,m;
long long pairs;
int main()
{
ifstream f("mins.in");
ofstream g("mins.out");
f>>n>>m;
for(i=2;i<=n;i++)
nr[i]=min(i-1,m);
for(i=2;i<=n;i++)
{
nrdiv[i]++;pairs+=(1LL)*nr[i];
if(nrdiv[i]!=-1)
for(j=2*i;j<=n;j+=i)
{
if((j/i)%i==0) nrdiv[j]=-1;
if(nrdiv[i]==1&&nrdiv[j]!=-1) nrdiv[j]++;
t=min(j-1,m);
if(nrdiv[i]%2==0) nr[j]+=t/i;
else nr[j]-=t/i;
}
}
g<<pairs;
return 0;
}