新python学习者的最大除数和最大数字

问题描述

我不知道如何编写一个程序,能够在 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))

如果您有任何问题,请随时提问!