#define _CRT_SECURE_NO_WARNINGS 1
#include
#includeint main()
{long n, k = 0;long count = 0;while (~scanf("%ld %ld", &n, &k)){if (k == 0) //特殊情况考虑{printf("%ld\n", n * n);continue;}for (long j = k + 1; j <= n; j++) //今天见上文分析{long help = n % j < k ? 0 : (n % j) - k + 1;count += (j - k) * (n / j) + help;}printf("%ld\n", count);}system("pause");return 0;
}
答案代码:
#include
int main()
{
long n, k;
while(~scanf("%ld %ld", &n, &k)){
if (k == 0) {
printf("%ld\n", n * n);//任意数对的取模结果都是大于等于0的
continue;
}
long count = 0;
for(long y = k + 1; y <= n; y++) {
count += ((n / y) * (y - k)) + ((n % y < k) ? 0 : (n % y - k + 1));
}
printf("%ld\n", count);
}
return 0;
}
上一篇:23种设计模式之七种结构型模式