zoukankan      html  css  js  c++  java
  • Codeforces Round #471 (Div. 2) C. Sad powers

    首先可以前缀和 ans = solve(R) - solve(L-1)
    对于solve(x) 1-x当中符合条件的数
    分两种情况

    1. 3,5,7,9次方的数,注意这地方不能含有平方次
    2. 平方数
    #include <algorithm>
    #include <cmath>
    #include <cstdio>
    #include <iostream>
    #include <vector>
    
    std::vector<long long> oddNumber;
    bool isSqaure(long long x) {
        long long t1 = sqrt(x);
        return t1 * t1 == x;
    }
    void pre() {
        // get the a^p (p = 3,5,7,9)
        oddNumber.clear();
        for (long long i = 2; i < 1000001; ++i) {
            if (!isSqaure(i)) {
                long long initNumber = i * i * i;
                long long multiplyNumber = i * i;
                oddNumber.push_back(initNumber);
                while (1.0 * initNumber * multiplyNumber <= 1e18) {
                    initNumber *= multiplyNumber;
                    oddNumber.push_back(initNumber);
                }
            }
        }
        sort(oddNumber.begin(), oddNumber.end());
        oddNumber.erase(unique(oddNumber.begin(), oddNumber.end()), oddNumber.end());
    }
    long long solve(long long number) {
        if (number == 0)
            return 0;
        long long result = upper_bound(oddNumber.begin(), oddNumber.end(), number) - oddNumber.begin();
    
        result += (long long)sqrt(number);
        return result;
    }
    int main() {
        int Q;
        pre();
        while (~scanf("%d", &Q)) {
            for (int i = 0; i < Q; ++i) {
                long long L, R;
                scanf("%lld %lld", &L, &R);
                printf("%lld
    ", solve(R) - solve(L - 1));
            }
        }
        return 0;
    }
    
  • 相关阅读:
    VUE权限列表控制
    VUE-element-UI修改内置样式
    微信开发-url地址传值踩坑
    git 上传命令
    微信开发-缩略图插件
    axios拦截器
    设置contentType
    JSON.parse 函数应用 (复制备忘)
    angularjs开发遇到的坑
    http 请求头
  • 原文地址:https://www.cnblogs.com/Basasuya/p/8641415.html
Copyright © 2011-2022 走看看