🐍Python/Python_알고리즘

[알고리즘] 42. Sherlock and Squares

728x90
반응형

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 .

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

  • a: an integer, the lower range boundary
  • b: an integer, the uppere range boundary

Input Format

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.

Constraints


Output Format

For each test case, print the number of square integers in the range on a new line.

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.


답 : 



#!/bin/python3

import math
from math import sqrt
import os
import random
import re
import sys

# Complete the squares function below.
def squares(a, b):
count = 0
for num in range(round(sqrt(a)),round(sqrt(b))+1):
if a <= num**2 <= b:
count +=1
return count

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

q = int(input())

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

a = int(ab[0])

b = int(ab[1])

result = squares(a, b)

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

fptr.close()



주어진 a,b 사이의 수 중에서 제곱근이 정수인 수를 찾는 문제!  반대로 생각해서 루트a,b의 수를 범위를 두고 그 수 들 사이에서 제곱이 a,b 사이에 있다면 count +=1 했다.

728x90
반응형