【玄关求条WA】
查看原帖
【玄关求条WA】
767155
a_small_penguin楼主2025/2/5 20:13
#include<bits/stdc++.h>
using namespace std;

long long n;
long long sum;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    cin >> n;
    
    long long z = sqrtl(n);
    sum += (long long)z;
    // for(int i = 1; i <= z; i++) {
        // cout << pow(i, 2) << "\n";
    // }
    long long i = 3;
    while((long long)pow(n, (long double)1.0 / i) >= 2) {
        long long x = (long long)pow(n, (long double)1.0/i);
        sum += (long long)x;
        set<long long> st;
        st.insert(1);
        long long j = 2;
        while((long long)pow((long long) x, (long double)1.0/j) >= 2) {
            for(long long k = 1; k <= (long long)pow((long long) x, (long double)1.0/j); k++){
                st.insert(pow(k, j));
            }
            if(j != 2) j++;
            j++;
        }
        sum -= st.size();
        i+=2;
    }
    cout << sum;
    
    return 0;
}

现在校内模拟测同样题目不同数据通过,目前怀疑精度爆炸

2025/2/5 20:13
加载中...