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)
上一题
下一题