测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A18585. 完全平方数计数

填空题 较易

题目描述

完全平方数计数

题目描述

小杨同学正在研究完全平方数。

平方:一个数的平方等于这个数乘以这个数本身。

完全平方数:指可以恰好表示为某个正整数的平方的数。

例如, 9 是完全平方数,因为 9 = 32 = 3 * 3;但 27 不是,因为 27 不能表示为任何正整数的平方。

给定两个正整数 L 和 R(保证 L ≤ R),小杨同学想知道 L 到 R 之间的所有正整数中(包含 L 和 R ),有多少个数是完全平方数

输入格式

输入两行,第一行为一个正整数 L ,第二行为一个正整数 R。

输出格式

输出一个非负整数,表示 L 到 R 中,有多少个正整数是完全平方数。如果 L 到 R 中没有完全平方数,则输出 0 。

输入样例

1
21

输出样例

4

样例解释

在 1 到 21 中,有以下 4 个整数是完全平方数:1,4,9,16

参考答案

l = int(input()) r = int(input()) ans = 0 # 遍历每一个l和r之间的数 for n in range(l, r + 1): x = 1 # 对于每一个数,我们看能不能找到一个x使得x**2==n while x * x < n: x += 1 if x * x == n: ans += 1 print(ans)

答案解析

# 输入左右边界 
l = int(input()) 
r = int(input()) 
ans = 0 # 最终答案:有ans个完全平方数 
# 因为r<2000,因此如果l<=i*i<=r的话,i只用考虑0~100即可 
for i in range(100): 
    if i * i > r: # 超过右边界r 
        break 
    # 大于等于左边界l,这样的i*i符合题意,给最终结果+1 
    if i * i >= l: 
        ans += 1 
print(ans)


上一题 下一题