WA 求条 悬关
查看原帖
WA 求条 悬关
648508
zjx_kimi楼主2023/10/12 15:44
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, k, sq, log2_;
bool p[200];
set<int> S;
int qpow(int x, int y) {
    if(y == 0) return 1;
    else if(y == 1) return x;
    int res = qpow(x, y / 2);
    if(y & 1) return res * res * x;
    else return res * res;
}
signed main() {
    scanf("%lld%lld", &n, &k);
    if (k ^ 1) {
		log2_ = log2l(n);
        for (int i(k); i <= log2_; ++i) {
            if(!p[i]) {
                for (int j(1); qpow(j, i) <= n; ++j) {
                    S.insert(qpow(j, i));
                }
				for (int j(2); j * i <= log2_; ++j) p[i] = 1;
            }
        }
        printf("%lld", S.size());
    } else {
        cout << n << '\n';
        return 0;
    }
}
2023/10/12 15:44
加载中...