Pagini recente » Cod sursa (job #847436) | Cod sursa (job #1004444) | Monitorul de evaluare | Rating Cioata Andrei-Valentin (andreicioata) | Cod sursa (job #1791345)
#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;n--;m--;
for(i=2;i<=n;i++)
nr[i]=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+1;
return 0;
}