任务是让一些输入数字找出那个数字 pronic,如果没有找到最接近输入数字的 pronic 数字。问题是如何编写其余的代码。我设法完成了第一部分,并找出输入的数字是否是 pronic。问题是如果输入的数字不是 pronic,我找不到找到最近的较大数字的好方法。我有一个想法添加到嵌套 for 循环的 else 部分中,以查找从 1 到 n 的所有 pronic 数字,将它们附加到列表中并找到该列表的最大值,但即使我这样做,我也只会找到最接近的较小数字,而不是最接近的也可能大于给定的数字。目前,我有:
flag=0
n=int(input('Enter the number: '))
for i in range(1,n):
if i*(i+1)==n:
flag=1
if flag==1:
print('Entered number is pronic!')
else:
def pro(n):
flag=False
for j in range(1,n):
if j*(j+1)==n:
flag=True
break
return flag
list1=[]
for i in range(1,n):
if pro(i):
list1.append(i)
print('Not pronic. Closest smaller pronic number: ',max(list1))
料青山看我应如是
相关分类