B3879题解
yaotianhao · · 题解
题意
求
分析
我们先按
如果
如果
代码
代码如下
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, k, sum, now = 1, ans;
signed main() {
scanf("%lld%lld", &n, &k);
if(k % 2 == 1) {
for(int i = 1; ; i++) {
if(k * i * i + k / 2 <= n) sum++;
else break;
}
printf("%lld", sum);
}
else {
int l = k / 2;
for(int i = 2; i * i <= k; i++) while(l % (i * i) == 0) l /= i * i;
if(l % 2 == 0) {
printf("0");
return 0;
}
for(int i = 1; ; i += 2) {
ans = i * i * l;
if(ans < k + 1) continue;
if(ans / 2 + k / 2 <= n) sum++;
else break;
}
printf("%lld", sum);
}
}