Hackerrank - Sherlock and Squares Solution
Watson likes to challenge Sherlock's math ability. He will provide a starting and ending value describing a range of integers. Sherlock must determine the number of square integers within that range, inclusive of the endpoints.
Note: A square integer is an integer which is the square of an integer, e.g. .
For example, the range is and , inclusive. There are three square integers in the range: and .
Complete the squares function in the editor below. It should return an integer representing the number of square integers in the inclusive range from to .
squares has the following parameter(s):
- a: an integer, the lower range boundary
- b: an integer, the uppere range boundary
The first line contains , the number of test cases.
Each of the next lines contains two space-separated integers denoting and , the starting and ending integers in the ranges.
For each test case, print the number of square integers in the range on a new line.
2 3 9 17 24
Test Case #00: In range , and are the two square integers.
Test Case #01: In range , there are no square integers.
Solution in Python
from math import sqrt def squares(a, b): c = int(sqrt(b))-int(sqrt(a)) return c+1 if int(sqrt(a))**2==a else c for _ in range(int(input())): a,b = map(int,input().split()) print(squares(a, b))