CF1487D Pythagorean Triples
题目描述
毕达哥拉斯三元组是指一组三个整数 $(a, b, c)$,使得可以用这三个数分别作为直角三角形的两条直角边和斜边的长度。也就是说,存在 $a^2 + b^2 = c^2$。例如,$(3, 4, 5)$ 就是一个毕达哥拉斯三元组。
Vasya 正在研究直角三角形的性质,他记得有一个公式可以判断一组三个整数是否构成毕达哥拉斯三元组,但他忘记了具体的公式,只记得和平方有关。于是他想出了如下公式:$c = a^2 - b$。
显然,这不是判断毕达哥拉斯三元组的正确公式。但令 Vasya 惊讶的是,这个公式在三元组 $(3, 4, 5)$ 上居然成立:$5 = 3^2 - 4$,所以按照 Vasya 的公式,这也是一个毕达哥拉斯三元组。
当 Vasya 找到正确的公式后(并意识到自己的公式是错的),他开始好奇:有多少组整数三元组 $(a, b, c)$ 满足 $1 \le a \le b \le c \le n$,并且既符合真正的毕达哥拉斯三元组定义,又满足 Vasya 的公式?他请你帮忙统计这样的三元组个数。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例包含一行,一个整数 $n$($1 \le n \le 10^9$)。
输出格式
对于每个测试用例,输出一个整数,表示满足 $1 \le a \le b \le c \le n$,且同时符合真正的毕达哥拉斯三元组定义和 Vasya 的公式的三元组 $(a, b, c)$ 的个数。
说明/提示
唯一满足 $c = a^2 - b$ 且 $1 \le a \le b \le c \le 9$ 的毕达哥拉斯三元组是 $(3, 4, 5)$,因此 $n = 3$ 时答案为 $0$,$n = 6$(以及 $n = 9$)时答案为 $1$。
由 ChatGPT 4.1 翻译