问题标题: 酷丁编程:8301 完全立方数

0
0
已解决
查宣乔
查宣乔
初级守护
初级守护

题目链接: 酷丁编程:8301

#include<iostream>
#include<cmath>
using namespace std;
long long a,b,x,cnt=0;
int main(){
    cin>>a>>b>>x;
    for(int i=max(int(sqrt(a)),2);i<=1e9+10;i++){
        int t=i*i*i;
        if(t>b) break;
        if(t%x!=0){
            cnt++;
        }
    }
    cout<<cnt;
    return 0;
}

 


0
已采纳
汪思源
汪思源
高级守护
高级守护

开longlong数组记下小于1e18的完全立方数、

然后lower_bound二分查找a

再upper_bound二分查找b,再--

然后遍历这两个范围,

如果a[i]不是x的倍数,++ans

最后输出ans

0
我要回答