问题描述
我不知道如何编写一个程序,能够在 input()
中获取 20 个数字并返回最大的数字,即使两个或多个数字的除数相同,我也想要最大的一个答案。
def divisor():
n = 0
answer = 0
temp_1 =0
temp_2 = 0
while True:
temp_1=0
n = int(input('Enter your number: '))
if n <=0:
break
for i in range(1,n+1):
if n % i == 0:
temp_1+=1
if temp_1>=temp_2:
if(n > answer):
answer = n
temp_2 = temp_1
my_list = []
my_list.append(n)
for i in range(n):
x = len([i for i in range(1,n+1) if not n % i])
return f'{answer} {x}'
print(divisor())
这是我的代码,但它没有按照我想要的方式工作,而且我认为它不是真的可读,我自己在使用它时感到困惑。 您能否以一种新的 Python 学习者可以理解的方式帮助我?提前很多。
解决方法
以下代码应该可以满足您的需求:
import numpy as np
def inputNumber(message):
while True:
try:
userInput = int(input(message))
except ValueError:
print("Not an integer! Try again.")
continue
else:
return userInput
break
def divisor(number_of_inputs):
all_numbers = np.zeros(number_of_inputs,dtype='int')
for i in range(number_of_inputs):
all_numbers[i] = inputNumber("Enter your Number: ")
return np.gcd.reduce(all_numbers)
print(divisor(20))
如果您有任何问题,请随时提问!