Pagini recente » Cod sursa (job #763932) | Cod sursa (job #2009960) | Cod sursa (job #619842) | Cod sursa (job #2029383) | Cod sursa (job #2478514)
#include <fstream>
using namespace std;
ifstream cin("mins.in");
ofstream cout("mins.out");
unsigned long long pinex(int x, int y)
{
//cout << x << ' ' << y << " ";
unsigned long long s = 0;
long long a[1001];
int k = 0, i;
int d = 3;
if(!(y & 1))
{
a[++k] = 2;
while(!(y & 1))
y >>= 1;
}
while(d * d <= y)
{
if(!(y % d))
{
a[++k] = d;
while(!(y % d))
y /= d;
}
d += 2;
}
if(y > 1)
a[++k] = y;
long long pr;
int contor = 0;
s = x;
for (i = 1 ; i < (1 << k); i++)
{
pr = 1;
contor = 0;
for (int j = 0 ; j < k; j++)
if ((i & (1 << j)))
contor++, pr *= a[j+1];
s += ((contor%2 == 0 ? 1 : -1) * x / pr);
}
return s;
}
void citire()
{
int c, d;
cin >> c >> d;
long long s = c - 1;
for(int i = 2 ; i < d ; i++)
s += pinex(c - 1, i);
cout << s << '\n';
}
int main()
{
citire();
return 0;
}