所有的数都在√n*√n 的正方形中,所以只需要算出对角线的长度 因为对角线上的数都是完全平方数,对角线上的数的个数便是√n 例如100 有1,4,9,16,25,36,49,64,81,100.个 如果√n不是整数只需要向下取整就好,因为取不到n 就例如5的话只有1,4.
有不对之处希望指正.
#include<iostream> #include<cmath> using namespace std; int main() { ios::sync_with_stdio(false); int t,n; cin>>t; while(t--) { cin>>n; cout<<(int)(sqrt(n*1.0))<<endl; } return 0; }