- Sherlock and Squares

 



Watson likes to challenge Sherlock's math ability. He will provide a starting and ending value that describe a range of integers, inclusive of the endpoints. Sherlock must determine the number of square integers within that range.

Note: A square integer is an integer which is the square of an integer, e.g. .

Example

There are three square integers in the range:  and . Return .

Function Description

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):

  • int a: the lower range boundary
  • int b: the upper range boundary

Returns

  • int: the number of square integers in the range

Input Format

The first line contains , the number of test cases.
Each of the next  lines contains two space-separated integers,  and , the starting and ending integers in the ranges.

Constraints


Sample Input

2
3 9
17 24

Sample Output

2
0

Explanation

Test Case #00: In range  and  are the two square integers.
Test Case #01: In range , there are no square integers.


Program :

#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'squares' function below.
#
# The function is expected to return an INTEGER.
# The function accepts following parameters:
#  1. INTEGER a
#  2. INTEGER b
#

def squares(a, b):
    # Write your code here
    list1 = []
    i = 1
    count = 0
    while (len(list1) == 0 and i*i<=b):
        if (i * i >= a and i * i < (b + 1)):
            list1.append(i)
            list1.append(i * i)
        i+=1
    if(len(list1))==0:
        return 0
    else:
        c = list1[0]
        d = list1[1]
        e=2*c+1
        while(d<(b+1)):
            count += 1
            d += e
            e += 2
        return count
        

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    q = int(input().strip())

    for q_itr in range(q):
        first_multiple_input = input().rstrip().split()

        a = int(first_multiple_input[0])

        b = int(first_multiple_input[1])

        result = squares(a, b)

        fptr.write(str(result) + '\n')

    fptr.close()

Output :
Compiler Message
Success
Input (stdin)
  • 2
  • 3 9
  • 17 24
Expected Output
  • 2
  • 0

Post a Comment

Previous Post Next Post