相关疑难解决方法(0)

检查一个数字是否是一个完美的正方形

我怎么能检查一个数字是否是一个完美的正方形?

速度无关紧要,现在,只是工作.

python math perfect-square

70
推荐指数
8
解决办法
13万
查看次数

如果在Python中输入大数字时如何有效地找到范围内的完美正方形

问题是当输入数字非常大时,如何有效地找到给定范围内的完美正方形.我的解决方案是Time Limit Exceeded错误.我已经检查了以下链接,但它们没有解决我的问题:
- 完美广场上的Python程序
- 我如何检查一个数字是否是一个完美的正方形?
- 确定整数的平方根是否为整数的最快方法(我不知道如何实现Python中此链接中给出的解决方案).

问题是:

输入格式:第一行包含T,即测试用例的数量.随后是T测试用例,每个测试用例都在换行符中.每个测试用例包含两个空格分隔的整数,表示A和B.查找A和B范围内的所有完美正方形(包括两者).

输入示例:

2
3 9
17 24

我写的代码是:

import math
def is_perfect_square(n):
    return n % n**0.5 == 0

t = int(raw_input())
for i in range(t):
    numbers = map(int, raw_input().split())
    count = 0
    for j in xrange(numbers[0], numbers[1] + 1): # I also tried range() which gave memory error
        if (is_perfect_square(j)):
            count = count + 1

    print count
Run Code Online (Sandbox Code Playgroud)

虽然此代码适用于较小的数字,但它Time limit exceeded为大输入提供了错误.

(注意:gmpy不是一个选项,因为代码必须在没有gmpy模块的在线编译器上运行)

python largenumber perfect-square

3
推荐指数
1
解决办法
2441
查看次数

标签 统计

perfect-square ×2

python ×2

largenumber ×1

math ×1