序号乘方

Description

There are Infinite People Standing in a row, indexed from 1.A person having index 'i' has strength of (i*i).You have Strength 'P'. You need to tell what is the maximum number of People You can Kill With your Strength P.You can only Kill a person with strength 'X' if P >= 'X' and after killing him, Your Strength decreases by 'X'

Input

First line contains an integer 'T' - the number of testcases,Each of the next 'T' lines contains an integer 'P'- Your Power.Constraints:1<=T<=100001<=P<=1000000000000000

Output

For each testcase Output The maximum Number of People You can kill.

Sample Input 1

1
14

Sample Output 1

3

Solution

# 实际上是问小于p的累加乘方的序号
if __name__ == '__main__':
    T = int(input())
    while T:
        T -= 1
        p = int(input())
        i = 1
        while p >= i**2:
            p -= i**2
            i += 1
        print(i)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容