当我将数字从120键入1时,结果缺少一些数字,例如:21、27,...
import math
j=[] #list
intInputA=int(input("Nhập khoảng bắt đầu: "))
intInputB=int(input("Nhập khoảng dừng: "))
print("The numbers between",intInputA,"and",intInputB,"are:")
if(intInputA>intInputB):
print("Sai dữ liệu rồi cậu! ")
else:
for i in range(intInputA, intInputB + 1):
if(i%3==0):
a = math.sqrt(i)
if(a * a != i):
j.append(str(i))
print(','.join(j))
答案 0 :(得分:0)
我不确定为什么您的方法无法按预期运行,但是您可以尝试以下方法:
import math
j=[] #list
intInputA=int(input("Nhập khoảng bắt đầu: "))
intInputB=int(input("Nhập khoảng dừng: "))
print("The numbers between",intInputA,"and",intInputB,"are:")
if(intInputA>intInputB):
print("Sai dữ liệu rồi cậu! ")
else:
for i in range(intInputA, intInputB + 1):
if(i%3==0):
a = math.sqrt(i)
if(math.pow(i,2) != i) and (int(a+0.5) ** 2 != i):
j.append(str(i))
print(','.join(j))
打印输出:
('The numbers between', 1, 'and', 120, 'are:')
3,6,12,15,18,21,24,27,30,33,39,42,45,48,51,54,57,60,63,66,69,72,75,78,84,87,90,93,96,99,102,105,108,111,114,117,120
请注意此处的更改:if(math.pow(i,2) != i) and (int(a+0.5) ** 2 != i)
答案 1 :(得分:0)
我只是更改了我的代码。我将代码从float(for sqrt)转换为int。代码还可以。
import math
j=[] #list
intInputA=int(input("Nhập khoảng bắt đầu: "))
intInputB=int(input("Nhập khoảng dừng: "))
print("The numbers between",intInputA,"and",intInputB,"are:")
if(intInputA>intInputB):
print("Sai dữ liệu rồi cậu! ")
else:
for i in range(intInputA, intInputB + 1):
if(i%3==0):
a = int(math.sqrt(i))
if(a * a != i):
j.append(str(i))
print(','.join(j))