求两个数之间互质数的数量,具体如图所示

有没有人可以帮忙解答一下吗?
双重for循环遍历,就满足上面2个条件的a和b,然后判断a和b的公因数是否只有1.
运行结果

代码如下:
#include <iostream>
using namespace std;
int main()
{
int n, k;
int a, b;
int nmb = 0;
int m;
int i, j;
cin >> n >> k;
for (a = 2; a <= n; a++)
{
for (b = a + 1; b <= n; b++)
{
m = (b - a) / k;
if (((b - a) % k == 0) && (m >= 1))
{
//判断质数是否有重复
for (i = a; i > 1; i--)
{
if (a % i == 0 && b % i == 0)
break; //有非1的因子
}
if (i == 1)
nmb++;
}
}
}
cout << nmb;
return 0;
}