Pythagorean Triples (Codeforces 1487D)
Tags: Math, number theory

A Pythagorean triple is a triple of integer numbers $$$(a, b, c)$$$ such that it is possible to form a right triangle with the lengths of the first cathetus, the second cathetus and the hypotenuse equal to $$$a$$$, $$$b$$$ and $$$c$$$, respectively. An example of the Pythagorean triple is $$$(3, 4, 5)$$$.Vasya studies the properties of right triangles, and he uses a formula that determines if some triple of integers is Pythagorean. Unfortunately, he has forgotten the exact formula; he remembers only that the formula was some equation with squares. So, he came up with the following formula: $$$c = a^2 - b$$$.Obviously, this is not the right formula to check if a triple of numbers is Pythagorean. But, to Vasya's surprise, it actually worked on the triple $$$(3, 4, 5)$$$: $$$5 = 3^2 - 4$$$, so, according to Vasya's formula, it is a Pythagorean triple.When Vasya found the right formula (and understood that his formula is wrong), he wondered: how many are there triples of integers $$$(a, b, c)$$$ with $$$1 \le a \le b \le c \le n$$$ such that they are Pythagorean both according to his formula and the real definition? He asked you to count these triples.

Input: The first line contains one integer $$$t$$$ ($$$1 \le t \le 10^4$$$) — the number of test cases.Each test case consists of one line containing one integer $$$n$$$ ($$$1 \le n \le 10^9$$$).

Output: For each test case, print one integer — the number of triples of integers $$$(a, b, c)$$$ with $$$1 \le a \le b \le c \le n$$$ such that they are Pythagorean according both to the real definition and to the formula Vasya came up with.

Note: The only Pythagorean triple satisfying $$$c = a^2 - b$$$ with $$$1 \le a \le b \le c \le 9$$$ is $$$(3, 4, 5)$$$; that's why the answer for $$$n = 3$$$ is $$$0$$$, and the answer for $$$n = 6$$$ (and for $$$n = 9$$$) is $$$1$$$.

Sample Inputs:
3
3
6
9

Sample Outputs:
0
1
1

Solution (Python):
import sys
input = sys.stdin.readline
import math
''
t = int(input())
for _ in range(t):
    n = int(input())
    print(math.floor((math.sqrt(2 * n - 1) - 1) // 2))

Solution (Python):
import sys
input = sys.stdin.readline
from math import sqrt
for _ in range(int(input())):
    n = int(input())
    ans = (int(sqrt(2 * n - 1)) + 1) // 2
    print(ans - 1)

Solution (Python):
for n in [*open(0)][1:]:
    print((int((int(n) * 2 - 1) ** 0.5) - 1) // 2)