B. Squares and Cubes

B. Squares and Cubes
time limit per test:1 second
memory limit per test:256 megabytes
input:standard input
output:standard output

Polycarp likes squares and cubes of positive integers. Here is the beginning of the sequence of numbers he likes: 1489, ....

For a given number n, count the number of integers from 1 to n that Polycarp likes. In other words, find the number of such x that x is a square of a positive integer number or a cube of a positive integer number (or both a square and a cube simultaneously).

Input

The first line contains an integer t (1t201≤t≤20) — the number of test cases.

Then tt lines contain the test cases, one per line. Each of the lines contains one integer n (1n1091≤n≤109).

Output

For each test case, print the answer you are looking for — the number of integers from 1 to n that Polycarp likes.

Example
input
6
10
1
25
1000000000
999999999
500000000
output
4
1
6
32591
32590
23125

思路:该题题意比较容易看得懂,就是给你一个数,让你算出平方和立方都小于这个数的个数是多少,如给出一个10,除去1,2的平方和立方,3的平方都小于10,所以就有4个数。那这道题的解法就相对容易多了,只需要把给出的数开根号,然后再加上开三次方根,加起来就行。但要注意的一点就是,2和3的平方立方也存在重复的情况,所以要减去六次方根。

题解:

#include<bits/stdc++.h> //万能头
using namespace std;
int main(){
	int x; //数据个数 
	cin>>x;
	
	while(x--){ //通过while降低空间复杂度 
		double n;
		cin>>n;
		n+=(0.00001);
		cout<<int(pow(n,1.0/2))+int(pow(n,1.0/3))-int(pow(n,1.0/6))<<endl; //这里就是思路的实现方式
	}
	return 0;
} 

 

posted @ 2022-01-17 14:03  霜鱼CC  阅读(9)  评论(0)    收藏  举报