B3879 90pts 求条

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, k, ans;
signed main() {
	cin >> n >> k;  int k2 = k / 2;
	if (k % 2 == 0) {
		k /= 2; 
		for (int i = 2; i <= k / i; i++) {
			if (k % (i * i) == 0) {
				k /= i * i;
			}
		}
		for (int i = 1; i * i * k <= 2 * n; i++) {
			if ((k * i * i + 1 - 2 * k2) >= 1 && (k * i * i + 1 - 2 * k2) % 2 == 0) {
				ans++;
			}
		}
		cout << ans;
	} else {
		for (int i = 1; i * i * k + k2 <= n; i++) ans++;
		cout << ans;
	}
	return 0;
}

已通过,此帖结