Codeforces Round #762 B. Squares and Cubes

题目大意

找出1~n之间的平方数和立方数。

 

分析

先看数据范围1e9, 不能直接枚举判断,那就从1枚举到sqrt(n) 然后的处其平方和立,扔到set里面去重。立方数极端情况会到1e15, 开long long.

 

代码

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;

int t;
set<int> num;


signed main()
{
    cin>>t;
    while(t--)
    {
        num.clear();
        int n;
        cin>>n;
        int p=sqrt(n);
        for(int i=1;i<=p+1;i++)
        {
            if(i*i<=n) num.insert(i*i);
            if(i*i*i<=n) num.insert(i*i*i);
        }
        cout<<num.size()<<endl;
    }
    return 0;
}

 

posted @ 2021-12-21 08:41  前排吃瓜  阅读(91)  评论(0编辑  收藏  举报