CF1619B Squares and Cubes 题解

2022-09-09 12:04:57 浏览数 (1)

这道题就是容易想复杂,其实想明白很简单。

我的思路是,从 1sqrt{n} 循环筛一下 完全平方数,再从 1 sqrt[3]{n} 循环筛一下 完全立方数,去掉重复的数字,然后输出 size。

为了方便去重,我们用 set 来存储筛出的数。

Code:

代码语言:javascript复制
#include <iostream>
#include <cmath>
#include <set>

int t, n;

int main()
{
    std::cin >> t;
    while (t--)
    {
        std::cin >> n;
        std::set <int> table;
        for (int i = 1; i * i <= n; i  )
        {
            table.insert(i * i);
        }
        for (int i = 1; i * i * i <= n; i  )
        {
            table.insert(i * i * i);
        }
        std::cout << table.size() << std::endl;
    }
    return 0;
}

0 人点赞